我可以通过ssh将命令发送到具有登录名和密码的服务器,如下所示:
Net::SSH.start("1.2.3.4", "user_name", password: "1234") do |ssh|
res = ssh.exec!("ls")
end
但是,如果我想避免提供密码,并且如果我已将我的公共ssh密钥添加到该服务器,我该如何删除密码?我应该只是从函数调用中删除它还是我应该让服务器知道我想通过ssh公钥进行身份验证?
答案 0 :(得分:0)
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
看看有什么不对。