我尝试通过提供密码的ssh连接到服务器,但是当脚本执行时,它仍然一直要求我手动输入它:
session = Net::SSH.start(host, "root", password: pass) do |ssh|
result = ssh.exec!("ls -l")
end
如何解决这个问题?
答案 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守护程序。
如果它仍然存在,您可以检查您的根通行证。