提供密码的Net :: SSH.start但仍然一直要求我手动输入密码

时间:2016-07-24 09:59:02

标签: ruby ssh

我尝试通过提供密码的ssh连接到服务器,但是当脚本执行时,它仍然一直要求我手动输入它:

session = Net::SSH.start(host, "root", password: pass) do |ssh|
  result = ssh.exec!("ls -l")

end

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果你想在无法连接时让它失败,你必须在start方法上添加non_interactive模式

  

:non_interactive =>如果您的应用是非交互式的,则设置为true   首选身份验证失败vs密码提示

检查此代码

session = Net::SSH.start(host, "root", password: pass,non_interactive: true ) do |ssh|
  result = ssh.exec!("ls -l")
end

尝试连接自己做ssh的用户,如果没有,你必须检查你的ssh配置(你可以允许root用户) 检查

  

的/ etc / SSH / sshd_config中

如果你有这个配置。

  

PermitRootLogin是

然后重新启动ssh守护程序。

如果它仍然存在,您可以检查您的根通行证。

相关问题