2012-08-17 50 views
1

目前我做在我的代码像这样的SSH连接SSH连接:Ruby on Rails的不给密码

Net::SSH.start(@HOST, @USER, :password => @PASS) do|ssh| 
    @result = ssh.exec!("ls") 
    end 

现在我需要做的而不给予任何密码SSH连接。我无法找到准确的格式来启动SSH连接而不提供任何密码。

我在主机的授权密钥列表中添加了SSH密钥。我记得当我浏览没有密码的ssh时,在网络上的某处看到下面的代码。

Net::SSH.start(@HOST, @USER) do|ssh| 
     @result = ssh.exec!("ls") 
     end 

如果IAM错

回答

2

你必须指向你的私钥请指正,不公钥:

@USER = "me" 
@KEYS = ["my private key here"] 
@HOST = hostname 
Net::SSH.start(@HOST, @USER, :key_data=>@KEYS, :keys_only=>TRUE) do|ssh| 
    @result = ssh.exec!("ls")     
end 

,现在它并不需要密码了。

+0

谢谢!问题:你知道如何自动接受rsa主机密钥吗? (第一次登录到Linux时,必须键入'yes'才能接受交换的主机密钥) – 2017-08-09 15:05:46