Ich hatte SSH-Schlüssel-basierte Login funktioniert gut. Dann habe ich den Hostnamen auf meinem Computer geändert und die schlüsselbasierte Anmeldung funktioniert nicht mehr. Schien sinnvoll zu sein. Die Schlüssel stützten sich wahrscheinlich auf meinen alten Hostnamen. Also habe ich alle meine Schlüssel und alle Dateien in ~ / .ssh / gelöscht und neu generiert (und die authorized_keys auf den Servern geändert, mit denen ich verbunden bin)
Jedes Mal, wenn ich versuche, ssh zu verwenden, hängt es sich ohne Kennworteingabeaufforderung auf, unabhängig davon, wo ich versuche, ssh zu verwenden - auch auf Servern, auf denen keine schlüsselbasierte Anmeldung eingerichtet ist. In .ssh / config ist nichts.
Darüber hinaus funktioniert ssh perfekt, wenn ich mich als Root anmelde. überhaupt keine Probleme. Dies geschieht nur in meinem Benutzerkonto.
Unten finden Sie einige Debugging-Informationen von ssh
ssh -vv [email protected] OpenSSH_5.2p1, OpenSSL 0.9.8k 25. März 2009 debug1: Konfigurationsdaten werden gelesen /Users/myname/.ssh/config debug1: Konfigurationsdaten lesen / usr / etc / ssh_config ...... debug1: Host 'myremoteserver.com' ist bekannt und stimmt mit dem RSA-Hostschlüssel überein. debug1: Gefundener Schlüssel in /Users/myname/.ssh/known_hosts:1 debug2: Bits gesetzt: 512/1024 debug1: ssh_rsa_verify: Signatur korrekt debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS gesendet debug1: erwartet SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS empfangen debug1: SSH2_MSG_SERVICE_REQUEST gesendet debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT empfangen
Und dann hängt es einfach hier .....
Hier ist die Ausgabe von dtruss (wie strace, aber für OSX) am Ende, wo sie hängt: sudo dtruss ssh -vv [email protected]
select (0x4, 0x508200, 0x0, 0x0, 0x0) = 1 0 read (0x3, $ \ 222 \ 351 {L \ 363 \ 261 \ 25063sN \ 216 \ 300 @ q7 \ 203 \ 276b \ 257 \ 354 \ 337 \ 356 \ 260! {\ 342 \ 017 \ 271 = \ 222, \ 245 \ 347t \ 006 \ 225 \ 257 \ 333; \ 204 \ 020] \ 242 \ 005z # \ 0 ", 0x2000) = 48 0 write (0x2, "debug2: service_accept: ssh-userauth \ r \ n \ 0", 0x26) = 38 0 connect (0x4, 0xBFFFEEA2, 0x6A) = 0 0 Schreiben (0x4, "\ 0", 0x4) = 4 0 write (0x4, "\ v5 \ 004 \ 0", 0x1) = 1 0 read (0x4, "\ 0", 0x4) = -1 Err # 4
Es scheint, als würde es versuchen, etwas zu lesen, und es hängt einfach daran. Wenn jemand Vorschläge oder Ideen hat, wäre ich sehr dankbar!
Antworten:
Der Grund, warum Ihr ssh-Client für Ihr Konto hängt, aber nicht für andere Konten (root), ist wahrscheinlich, dass mit Ihrem ssh-agent etwas nicht stimmt. Entweder
ssh-agent
läuft das nicht oder die Konfiguration ist in irgendeiner Weise falsch.Um dies zu bestätigen, können Sie Folgendes versuchen:
Wenn Sie dann aufgefordert werden, die Passphrase in Ihren ssh_key einzugeben, liegt ein Problem mit Ihrem ssh-agent vor.
Siehe auch meinen Beitrag zu dieser verwandten Frage .
quelle
Kann ich Sie für Reverse DNS interessieren?
Im Wesentlichen führt der Client das umgekehrte DNS auf dem Server aus oder umgekehrt.
Ich schlage einen Test vor:
Deaktivieren Sie die DNS-Suche auf dem Server, indem Sie / etc / ssh / sshd_config bearbeiten und sicherstellen, dass "UseDNS" auf "no" gesetzt ist.
Führen Sie "service ssh reload" aus (oder was auch immer dazu führt, dass Ihr ssh-Daemon die Konfiguration erneut liest), und versuchen Sie es dann erneut.
Übrigens ist es nicht glücklich, Sie nach einer langen Zeit endlich dazu aufzufordern, oder?
Sie können auch den Inhalt von / etc / hosts auf dem Server überprüfen, um sicherzustellen, dass dort nichts falsch ist.
quelle
Überprüfen Sie die Berechtigungen für das Verzeichnis ~ / .ssh und die darin enthaltenen Dateien. Ihre Standard-umask ist möglicherweise zu freizügig und wenn Sie die Dateien neu erstellt haben, haben Sie ihnen möglicherweise versehentlich die falschen Berechtigungen erteilt. Ich bin selbst ein paar Mal davon verbrannt worden. Keiner der von mir verwendeten ssh-Clients (oder -Server) hat jemals eine nützliche Fehlermeldung dazu ausgegeben ...
quelle
Sie haben freien Speicherplatz auf Ihrem Client (und auf Ihrem Server)?
df -h
quelle
Ich hatte ein ähnliches Problem.
Es scheint, dass ich das Problem umgehen könnte, indem ich einen Login-Namen wie diesen erzwinge.
quelle
Für mich löste ein Upgrade auf Snow Leopard das Problem. Ich denke, das hing mit einem Fehler in OSX zusammen.
quelle
Wenn es sich um einen gespeicherten Schlüssel handelt, sollten Sie ihn aus Ihrem ~ / .ssh-Verzeichnis in der Datei known_hosts löschen können. Suchen Sie einfach den Eintrag und löschen Sie ihn. Dann sollten Sie erneut dazu aufgefordert werden.
Auf der anderen Seite sollte es eine Warnung geben, wenn der Host nicht mit den aufgezeichneten Daten übereinstimmt.
Ich hatte Probleme, bei denen die Suche nach Hostnamen unter OS X fehlschlägt. Das Warten auf eine Verbindung hat ein Zeitlimit überschritten, oder wenn die Eingabeaufforderung angezeigt wird, dauert es etwa zehn Sekunden, bis Sie ein Kennwort eingeben, bevor die Verbindung getrennt wird. Ich konnte es nie nachverfolgen, obwohl Leute vorschlugen, den fraglichen Host zur Host-Datei hinzuzufügen. Ich denke, es war nur eine "Panne mit den DNS-Lookups von OS X" und es wurde erwartet, dass es toleriert wird. Wenn jemand anderes dieses Problem hätte und es lösen würde, würde ich gerne davon erfahren.
quelle
Überprüfen Sie die Protokolle auf dem Server. Es ist normalerweise in
/var/log/auth.log
(Debian / Ubuntu) oder/var/log/secure
(RedHat / CentOS). Verbindungsprobleme werden in der Regel dort protokolliert.quelle
Stellen Sie sicher, dass / etc / hostname mit einem Zeilenumbruch versehen ist.
quelle