Authentifizierung fehlgeschlagen

Authentifizierung fehlgeschlagen
You have no controlling tty and no DISPLAY.  Cannot read passphrase.
warning: Authentication failed.
Disconnected (local); authentication cancelled by user (Authentication cancelled by user.).
Disconnect reason 13, exit code = 77
scp: warning: ssh2 client failed to authenticate. (or you have too old ssh2 installed, check with ssh2 -V)

Ich erhalte diesen Fehler, wenn ich mein Skript ausführe. SSH funktioniert in beide Richtungen zwischen den Servern

Antwort1

Ihr Problem besteht darin, dass Sie eine Art Authentifizierungsmethode verwenden, die eine Benutzereingabe erfordert (in Ihrem Fall offenbar eine Passphrase zum Entschlüsseln eines privaten Schlüssels oder vielleicht ein Kennwort), Ihr Programm jedoch keine Benutzereingaben empfangen kann, da es weder in einer grafischen Sitzung (wodurch verhindert wird, dass sshein Fensterformular zur Eingabe der Passphrase geöffnet wird) noch in einem Terminal gestartet wird (und sshSie daher nicht interaktiv nach der Passphrase fragen kann).

sshfunktioniert, wenn Sie das Öffnen einer Sitzung testen, da Sie in diesem Fall in einem Terminal starten sshund es daher kein Problem darstellt, die Passphrase zu erhalten.

Wenn Ihr Skript ohne steuerndes TTY ausgeführt wird (beispielsweise als Cron-Job), benötigen Sie eine nicht interaktive Authentifizierung. Beispielsweise einen privaten Schlüssel ohne Passphrase. Dies ist natürlich etwas unsicher und Sie möchten wahrscheinlich den Befehlssatz einschränken, der von Ihrem Skript über SSH ausgeführt werden kann, um zu verhindern, dass Angreifer, die den privaten Schlüssel kennen, eine voll funktionsfähige Shell auf dem Server erhalten.

verwandte Informationen