Wie lösche ich die ssh-agent-Einträge (unter Mac OS X)?

60

Ich verwende Mac OS X und es sieht so aus, als würde mein 'ssh-agent' nach dem SSH-Vorgang auf mehreren Rechnern unter Verwendung von Identitätsdateien eine Menge Identitäten / Schlüssel aufbauen und einem entfernten Rechner manchmal zu viele anbieten , wodurch diese dazu veranlasst werden Kick mich aus, bevor du dich anschließt:

Verbindungstrennung vom 10.12.10.16 erhalten: 2: Zu viele Authentifizierungsfehler für cwd

Es ist ziemlich offensichtlich, was passiert, und auf dieser Seite wird ausführlicher darauf eingegangen:

Auf SSH-Servern können Sie nur eine bestimmte Anzahl von Authentifizierungsversuchen ausführen. Jeder fehlgeschlagene Kennwortversuch, jeder fehlgeschlagene Pubkey / jede fehlgeschlagene Identität usw. führen einen dieser Versuche durch. Wenn Ihr Agent viele SSH-Schlüssel enthält, werden Sie möglicherweise von einem SSH-Server ausgeschlossen, bevor Sie überhaupt die Kennwortauthentifizierung versuchen können. In diesem Fall gibt es verschiedene Problemumgehungen.

Durch einen Neustart wird der Agent gelöscht und alles funktioniert wieder. Ich kann diese Zeile auch zu meiner .ssh/configDatei hinzufügen , um die Kennwortauthentifizierung zu erzwingen:

PreferredAuthentications keyboard-interactive,password

Wie auch immer, ich habe den Hinweis auf der Seite, auf die ich verwiesen habe, gesehen, in dem es um das Löschen von Schlüsseln vom Agenten geht, aber ich bin mir nicht sicher, ob dies auf einem Mac zutrifft, da sie nach dem Neustart sowieso gelöscht zu sein scheinen.

Gibt es eine einfache Möglichkeit, alle Schlüssel im 'ssh-agent' zu löschen (dasselbe passiert beim Neustart)?

cwd
quelle

Antworten:

97

Ihre SSH-Schlüssel sollten nicht automatisch zum Agenten hinzugefügt werden, nur weil Sie eine SSH-Verbindung zu einem Server hergestellt haben ...

Führen Sie ssh-add -lden Befehl aus, um die Schlüssel des Agenten ssh-add -Daufzulisten und alle Schlüssel zu löschen.

Grawity
quelle
Vielleicht hat es etwas mit der OSX-Konfiguration zu tun? Wenn ich eingebe, ssh-add -lbekomme ich nichts. Wenn ich ssh -i ~/keyFileLocation.dsa un@remotehosteingebe, wird ein OS X-Popup-Dialogfeld angezeigt, in dem Sie nach der Passphrase gefragt werden. Ich tippe es ein und dann verbindet es mich. Wenn ich die Verbindung trenne und dann eingebe ssh-add -l, wird die Identität angezeigt, die ich gerade verwendet habe. Nachdem ich den Computer neu gestartet und eingegeben ssh-add -lhabe, ist er wieder leer. ssh-add -Dhat großartig funktioniert, um die Schlüssel ohne Neustart zu löschen. Vielen Dank!
KWD
Vier Jahre später und das ist immer noch ein Problem, aber dieses
Update
Hey, kannst du mich bitte dazu führen? superuser.com/questions/951002/…
Niks
4
Falsch (im Jahr 2017): Siehe die AddKeysToAgentKonfigurationsoption, die speziell für das Hinzufügen Ihrer SSH-Schlüssel zum Agenten entwickelt wurde, nur weil Sie SSH auf einem Server ausgeführt haben.
Radon Rosborough
1

Eine andere Möglichkeit, die Überprüfung der Schlüssel einzuschränken, besteht darin , Ihrer Datei IdentitiesOnly yesund hinzuzufügen .IdentityFile ~/.ssh/<nameofkey>/.ssh/config

Leo Fisher
quelle