gpt4 book ai didi

ruby-on-rails - 简单的SSH测试Rails

转载 作者:行者123 更新时间:2023-12-02 14:39:31 25 4
gpt4 key购买 nike

在ssh进入rails应用程序中的远程计算机后,我只是试图列出目录,但没有得到所需的输出,我在俯视什么?主机是IP。

Controller -

def index
@ssh_test = Net::SSH.start( :host =>'xx.x.xx.xx',:user => 'name', :password => 'secret' ) do |ssh|
result = ssh.exec!('ls')
puts result
end
end

gem 文件
gem 'net-ssh'

View
<h2><%= @ssh_test %></h2>

当前目录目录不应该显示在我的 View 中吗?感谢您的关注。

更新

这是更新的进度,似乎仍无法完全掌握。
before_filter :set_ssh, :only => [:index]


def index
@ssh_dir = Net::SSH.start( @host, @user, :password => @password ) do |ssh|
result = ssh.exec!('ls')
end

def set_ssh
@host = 'xx.x.xx.xx'
@user = 'user'
@password = 'password'
end

View -
<h1><%= @ssh_dir( host, user, password).inspect %></h1>

最佳答案

您需要返回结果,并且调用start的方式不正确,请尝试以下操作:

def index
@ssh_test = Net::SSH.start('xx.x.xx.xx','name', :password => 'secret' ) do |ssh|
result = ssh.exec!('ls')
result
end
end

这是根据 http://net-ssh.github.com/net-ssh/在net-ssh版本2中调用start的正确方法。

编辑:回答在哪里放置您的配置。

如果您要使用的ssh服务器在所有环境中都是固定的,那么我可能会将其放在初始化程序中:
config/initializers/my_ssh_config.rb

将会有:
$SSH_HOST = 'xx.x.xx.xx'
$SSH_USERNAME = 'name'
$SSH_PASSWORD = 'secret'

注意,个人而言,我不会将用户名和密码存储在配置中,但也许首先尝试使其生效。 (我通常将其设置为环境变量,并执行$ SSH_PASSWORD = ENV ['SSH_PASSWORD']等)

然后,您的 Controller Action 将如下所示:

定义指数
@ssh_test = Net::SSH.start($ SSH_HOST,$ SSH_USERNAME,:password => $ SSH_PASSWORD)做| ssh |
结果= ssh.exec!('ls')
结果
结束
结束

您也可以将其添加到环境文件中(例如,test.rb,development.rb)。

关于ruby-on-rails - 简单的SSH测试Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com