2016-06-26 112 views
0

我可以通过ssh这样的命令发送到服务器登录名和密码:通过ssh发送命令与发布SSH密钥,没有密码

Net::SSH.start("1.2.3.4", "user_name", password: "1234") do |ssh| 
    res = ssh.exec!("ls") 
    end 

但是,如果我想避免提供密码如果我已将我的公用ssh密钥添加到该服务器,我该如何摆脱密码?我应该从函数调用中删除它,还是应该让服务器知道我想通过ssh公钥进行身份验证?

回答

1
Net::SSH.start("1.2.3.4", "user_name", keys: ['~/.ssh/id_rsa.pub']) do |ssh| 
    res = ssh.exec!("ls") 
end 

如果上面会不会为你工作,这样做:

Net::SSH.start("1.2.3.4", "user_name", 
       keys: ['~/.ssh/id_rsa.pub'], 
       # host_key: "ssh-rsa", # default value 
       # encryption: "blowfish-cbc", # default value 
       verbose: :debug 
) do |ssh| 
    res = ssh.exec!("ls") 
end 

,看看有什么是错的。