Ruby-如何连接远程服务器并在其上运行命令?

时间:2017-06-27 23:15:16

标签: ruby

我有这样的代码:

require 'rubygems'
require 'net/ssh'

hostname = '1.2.3.4'
username = 'user' 
cmd = "ls -al"


ssh = Net::SSH.start(hostname, username)
res = ssh.exec!(cmd)
ssh.close
puts res

出现错误:

Authentication failed for user user@1.2.3.4 (Net::SSH::AuthenticationFailed)

如何找到问题?

2 个答案:

答案 0 :(得分:0)

检查您的ssh密钥是否存在于远程和本地。对于Ruby代码,请参阅此链接

ssh remote server login script

答案 1 :(得分:0)

我不熟悉你正在使用的ssh gem。但是,首先检查简单:

  1. 您正在使用的计算机能否与正在运行的ssh服务器建立ssh连接,例如Github上。
  2. 按照GitHub指南为您的操作系统设置ssh进行测试。

    1. 是否有一个远程服务器,IP地址1.2.3.4正在侦听ssh连接?

    2. 它正在侦听哪个端口?默认端口为22。

    3. 通过使用您在问题1之前使用的ssh客户端尝试在Ruby之外的两台计算机之间进行ssh连接来回答这些问题。

      您可能会发现回答这些问题的问题。如果不这样做,请参阅gem的文档。我应该为我推荐的所有内容提供说明,但是我在移动设备上。