2016-07-24 19 views
0

我試圖通過ssh連接到服務器提供密碼,但它仍然一直要求我輸入密碼當腳本正在執行時手動:Net :: SSH.start提供了一個密碼,但仍然一直要求我手動輸入它

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

end 

如何解決這個問題?

+0

你可以用同一個用戶使用同一個密碼來同一個主機嗎? –

+0

@KarenB,沒關係。我不想被問到,而是我想要拋出一個異常。 – Matudi

+0

然後你應該編輯你的問題來反映這一點。 –

回答

2

如果你想,當你無法連接,你必須在開始添加方法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 

嘗試CONNEC到具有t帽子用戶通過自己做的ssh,如果不是你要檢查你的ssh配置(您可以允許root用戶) 支票

的/ etc/SSH/sshd_config中

,如果您有這方面的配置。

的PermitRootLogin是

,然後重新啓動ssh守護進程。

如果仍然存在,你可以檢查你的根傳球。

相關問題