2016-07-24 20 views
0

Ich versuche, eine Verbindung zu einem Server über SSH ein Passwort geben, aber es fragt mich immer noch für die Eingabe manuell, wenn das Skript ausgeführt wird:Net :: SSH.start mit einem Passwort zur Verfügung gestellt, aber es fragt mich immer noch, es manuell eingeben

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

end 

Wie Sie das beheben?

+0

Können Sie ssh auf demselben Host als denselben Benutzer mit dem gleichen Kennwort manuell? –

+0

@KarenB, ist es egal. Ich möchte nicht gefragt werden, stattdessen möchte ich eine Ausnahme auslösen. – Matudi

+0

Dann sollten Sie Ihre Frage bearbeiten, um das zu reflektieren. –

Antwort

2

Wenn Sie möchten, um es fehlschlagen, wenn Sie nicht in der Lage sind Sie non_interactive Modus auf Startmethode

hinzufügen zu verbinden haben: Authentifizierung non_interactive => auf true gesetzt, wenn Ihre Anwendung nicht interaktiv ist und bevorzugt Ausfall vs Kennwort abfragt

Überprüfung dieser Code

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

Versuchen connec zu mit t Hut Benutzer selbst tun ssh, wenn nicht müssen Sie Ihre ssh-Konfiguration überprüfen Prüfung auf

/etc/ssh/sshd_config

wenn Sie diese config (Sie können Root-Benutzer zulassen).

PermitRootLogin ja

und dann SSH-Daemon neu zu starten.

Wenn es noch ist, können Sie Ihre Root-Pass überprüfen.