ssh -A aktiviert die Weiterleitung der Verbindung zum Authentifizierungsagenten nicht ordnungsgemäß

22

Ich liebe ssh -A, die es mir ermöglicht, meinen lokalen SSH-Schlüssel beim Herstellen einer Verbindung von einem Remote-Server zu verwenden. Zum Beispiel habe ich ssh -A host1.example.comund dann von dort aus kann ich ssh host2.example.com(oder verwenden Sie git) und nutzt meine SSH - Schlüssel von der Original - Maschine, die in diesem Fall sollte mein Mac sein. Obwohl dies unter Debian / Ubuntu immer funktioniert hat, funktioniert es auf meinem neuen Mac (Lion) nicht.

Was vermisse ich hier? Wie konfiguriere ich ssh so, dass es korrekt mit -A zusammenarbeitet? Benötige ich ein SSH, das nicht das Standard-MacOS ist?

rfay
quelle

Antworten:

33

Eigentlich ist die sehr einfache Antwort, dass Sie laufen müssen

ssh-add

und dann funktioniert alles.

Grundsätzlich hat macOS den ssh-agent bereits für Sie eingerichtet, aber nach jedem Neustart müssen Sie Ihre Schlüssel hinzufügen. ssh-add ermöglicht ssh-agent den Zugriff auf Ihre Schlüssel für den aktuellen Startzyklus. Sie müssen das Passwort für Ihren privaten Schlüssel eingeben, falls Sie eines erstellt haben.

rfay
quelle
Das löste mein letztes SSH-Weiterleitungsproblem nach dem Upgrade auf macOS (nach 5 Jahren immer noch eine nützliche Antwort, danke @rfay)
23tux
Das funktioniert, aber einige Erklärungen, warum dies nützlich sein könnte, helfen den Leuten, sich an diesen Befehl zu erinnern.
Adam Parkin
2
@AdamParkin fügte einen weiteren erklärenden Absatz hinzu.
Freitag,
1

Das Konzept dahinter ssh -Asind ssh-Agenten. Sie werden im Hintergrund ausgeführt. Durch die Verwendung von Umgebungsvariablen kann der Agent gefunden und automatisch zur Authentifizierung verwendet werden, wenn Sie sich mit ssh bei anderen Computern anmelden. Weitere Informationen finden Sie auf der Manpage von ssh-agent.

Unter Mac OS X sollte der ssh-agent bei Bedarf gestartet werden.

Weitere Informationen finden Sie unter:

Florian Feldhaus
quelle
1

Ab OS X 10.8 müssen Sie dies einmal tun:

sudo touch /var/db/useLS

Und fügen Sie dies als Teil Ihrer ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Hinweis: Dieses Rezept ist Teil meiner Beduinenskripte .

Sorin
quelle
Hm, habe es gerade ausprobiert. Der Agent startet dann, aber Sie müssen noch ssh-add ausführen, damit alles funktioniert. So ist ssh-add allein nach meinem Verständnis immer noch die Antwort. Ich denke, ich sollte es zu meinem .bash_profile hinzufügen.
Rfay
lol, was ist, wenn mein privater Schlüssel eine Passphrase benötigt?
Jeffrey04