
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