Zweistufiges Remote-SSH ohne Passwort

Zweistufiges Remote-SSH ohne Passwort

Ich möchte per SSH von meinem lokalen Host auf einen Remote-Server und von dort auf einen Remote-Computer zugreifen. Ich habe es derzeit so eingerichtet, dass zwischen dem Remote-Computer und dem Remote-Server passwortloses SSH eingerichtet ist. Wenn ich jedoch per SSH von meinem lokalen Host auf den Server zugreife und dann versuche, von dort per SSH auf den Computer zuzugreifen, erhalte ich Folgendes:

Enter passphrase for key '/home/user/.ssh/id_dsa': 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).

Wenn ich versuche, von einem auf dem Remote-Server geöffneten Terminal per SSH auf den Remote-Computer zuzugreifen, funktioniert es einwandfrei. Hat es etwas damit zu tun, dass mein Display nicht funktioniert :0.0, oder etwas ganz anderes? Ich habe es versucht xhost +local:, bin aber danach nicht weitergekommen.

Danke

Antwort1

Wenn beide Systeme über den öffentlichen Schlüssel Ihres lokalen Systems verfügen, verwenden Sie -A.

Ausssh(1)

-A      Enables forwarding of the authentication agent connection.  This
        can also be specified on a per-host basis in a configuration file.

Beachten Sie auch diese Warnung:

        Agent forwarding should be enabled with caution.  Users with the
        ability to bypass file permissions on the remote host (for the
        agent's UNIX-domain socket) can access the local agent through the
        forwarded connection.  An attacker cannot obtain key material from
        the agent, however they can perform operations on the keys that
        enable them to authenticate using the identities loaded into the
        agent.

Das Ergebnis ist, dass bei Ihrer Authentifizierung gegenüber dem zweiten Host die Authentifizierung den ganzen Weg zurück an den Host weitergeleitet wird, auf dem Sie sich physisch befinden.

Beispiel:

me@host0:~ $ ssh -A host1
Last login: Thu Jun 14 11:31:53 2012 from 2001:db8::b0
me@host1:~ $ ssh -A host2
Last login: Thu Jun 14 11:41:05 2012 from 2001:db8::b1
me@host3:~ $ ssh -A host3
Last login: Tue Jun 12 10:46:50 2012 from 2001:db8::b2
me@host3:~ $ 

Antwort2

Ihr Agent kann die Authentifizierung nicht an den Remotecomputer weitergeben. Sie können eine Verbindung über eine Portweiterleitung direkt mit dem Remotecomputer verbinden, wenn Sie möchten.

Sehendieser Artikel über SSH Multi-Hopund springen Sie zum Abschnitt überProxyCommand

In ~/.ssh/config:

Host remotecomputername
  ProxyCommand ssh -q remoteservername nc -q0 remotecomputername 22

verwandte Informationen