Warum dauert die Aufforderung "Passwort" ewig, wenn ich SSH in meinen Ubuntu 9.05-Server einsetze?

27

Antwort: Es wurde tatsächlich eine umgekehrte DNS-Auflösung durchgeführt. Auf der Grundlage der folgenden Vorschläge und dieses Artikels habe ich meiner sshd_config "UseDNS no" hinzugefügt, ssh neu gestartet, und jetzt wird sofort die Kennwortabfrage angezeigt.

Wenn ich eine SSH-Verbindung zu meinem Server herstelle, erhalte ich die Standard-Eingabeaufforderung "Anmelden als:", gefolgt von der Eingabeaufforderung "Benutzer @ Host-Kennwort:". Aus irgendeinem Grund dauert es immer eine Weile, bis der zweite angezeigt wird. Mein Server ist nicht ausgelastet und führt Befehle normalerweise recht schnell aus.

Jetzt reden wir nur ungefähr 10 Sekunden zwischen dem Drücken der Eingabetaste für den Benutzernamen und dem Anzeigen der zweiten Eingabeaufforderung, aber wenn Sie dies häufig tun, wird es ärgerlich. Ich vermute, dass Ubuntu mein Benutzerkonto durchsucht, aber es hat <5 Konten für die gesamte Installation.

Das Update @Josh / var / log / messages enthält dieses Juwel:

Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: Called
Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: username = [msmith]
Oct 28 16:54:59 Athena sudo: Warning: Using default salt value (undefined in ~/.ecryptfsrc)
Oct 28 16:55:01 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: There is already a key in the user session keyring for the given passphrase.

Wobei msmith mein Benutzername ist. Was bedeutet das alles?

Campbell
quelle
Wissen Sie (oder möchten Sie lernen), wie man Paket-Sniffer wie Wireshark oder verwendet tcpdump? Das kann Ihnen sagen, ob der Server tatsächlich die ganze Zeit für sich selbst verwendet oder tatsächlich mit dem Client kommuniziert.
Arjan

Antworten:

17

Ist es möglich, dass eine umgekehrte DNS-Suche auf Ihrer IP durchgeführt wird? Sie können die Ergebnisse online überprüfen, wenn der Client eine öffentliche IP-Adresse verwendet, oder von Ihrem Server Folgendes verwenden:

dig -x CLIENT_IP_ADDRESS

Ist irgendetwas drin /var/log/messages?

Josh
quelle
Ich habe eine Warnung im Protokoll: Warnung: Verwenden des Standard-Salt-Werts (undefiniert in ~ / .ecryptfsrc). Ich habe den gesamten Abschnitt zu der Frage für Ihre Analyse gepostet.
Rcampbell
@ rrc7cz, also was ist mit dem umgekehrten DNS? Löst sich Ihre IP-Adresse in etwas auf? (Ich bezweifle, dass dies hilfreich sein wird, da in den meisten Fällen einige Handshakes erforderlich sind, um zu entscheiden, ob eine Aufforderung zur Eingabe des Benutzernamens angezeigt werden soll. Ein schneller Test mit Wireshark auf meinem Mac zeigt, dass SSH lange vor der Abfrage des Benutzernamens gestartet wird. Aber vielleicht fragen einige Kunden nach diesem Benutzernamen, bevor sie überhaupt versuchen, eine Verbindung herzustellen ...?)
Arjan
3
Ich hatte dieses Problem mit der umgekehrten DNS-Suche, das meine ssh-Verbindungen in einigen Installationen verlangsamte ... Wenn dies der Fall ist, kommentieren Sie die Zeile "UseDNS yes" in / etc / ssh / sshd_config aus und starten Sie sshd neu.
John Barrett
@john, erinnerst du dich, ob sich das nach der Eingabe des Benutzernamens verlangsamt hat ?
Arjan
1
"UseDNS no" hat mir auch geholfen! UpVotes für Q & A!
Grizly
14

Wahrscheinlich dauert die umgekehrte DNS-Auflösung (der Server versucht, den Namen des Clients mit einer bestimmten IP-Adresse zu ermitteln) einige Zeit. Können Sie überprüfen, ob / etc / ssh / sshd_config die Einstellung "VerifyReverseMapping yes" hat? Setzen Sie es auf "VerifyReverseMapping no" und prüfen Sie, ob dies hilfreich ist.

Bearbeiten: Es scheint, dass VerifyReverseMapping jetzt veraltet ist und useDNS die neue Konfiguration in der sshd_config ist .

secureBadshah
quelle
Es mag wahr sein, aber macht es dann Sinn, dass die Aufforderung zum Eingeben des Benutzernamens sofort angezeigt wird, wonach es 10 Sekunden dauert, um nach dem Kennwort gefragt zu werden?
Arjan
Der Client kann den Servernamen auflösen und eine Anfrage senden. Deshalb wird die Benutzeraufforderung sofort angezeigt. Dann versucht der Server, den Namen des Clients abzurufen (umgekehrte DNS-Auflösung). Dies kann zu einer Zeitüberschreitung führen, wenn die Eintrittsdosis nicht vorhanden ist. Die Einstellung "VerifyReverseMapping" in der sshd-config steuert diese Prüfung.
SecureBadshah
1
Dies war in meinem Fall der Grund für die Langsamkeit, daher ist dies zumindest in einigen Fällen sinnvoll. Beachten Sie, dass die Standardeinstellung ist yes, suchen Sie also nicht nur, ob festgelegt useDNSist :)
Nanne
3

Sie können sich immer mit dem Benutzernamen anmelden, mit dem Sie beginnen:

ssh user@server

Hat das irgendwelche Auswirkungen?

Wenn Sie PuTTY verwenden, können Sie es unter Verbindung -> Daten als Benutzername für die automatische Anmeldung konfigurieren .

John T
quelle
1
Dies beschleunigt zwar offensichtlich nicht die Zeit, die zum Anzeigen der Kennwortabfrage benötigt wird, beschleunigt jedoch definitiv den gesamten Anmeldevorgang. Danke
rcampbell
3

Wenn Sie nicht die richtigen Domainnamen für alles haben, erfinden Sie einfach etwas und fügen Sie es ein /etc/hosts. Mal sehen, ob das schneller geht ... .combenutze nicht einfach "Bob, Carol, Ted, Alice" oder was auch immer du willst ...

Wenn das Problem durch Zeitüberschreitungen bei der Lösung verursacht wird, wird dies behoben.

DigitalRoss
quelle
1

Denken Sie daran, dass der Client auch Reverse-DNS-Überprüfungen durchführt, die mindestens 30 Sekunden dauern können, wenn die Reverse-DNS-Zuordnung bei bestimmten Auflösungskonfigurationen nicht vorhanden ist.

In entweder /etc/ssh/ssh_configoder in ~/.ssh/configgesetzt CheckHostIP no, um diese clientseitige Suche zu deaktivieren.

Siehe man 5 ssh_configfür weitere Details.

tylerl
quelle
1

Ich habe eine alternative Lösung für dieses Problem gefunden: - http://www.patrickmin.com/linux/tip.php?name=ssh_pause

Ich hatte das gleiche Problem beim Einloggen in eine Linux-Build-Maschine mit Putty unter Windows. Das Hinzufügen der IP-Adresse meiner Windows-Box zu / etc / hosts auf dem Linux-Computer löste das Problem.

Rob Belcham
quelle
3
Willkommen bei Super User - Wir bevorzugen im Allgemeinen die Angabe von Details und nicht nur von Links. Können Sie Ihre Antwort BEARBEITEN, um weitere Informationen über den Link hinzuzufügen?
Simon Sheehan
1

Nur zur Veranschaulichung, ich hatte das gleiche Problem, bei dem ssh schnell von zu Hause zu meinem Heimserver lief (hauptsächlich für Git), aber es dauerte bei der Arbeit ungefähr 10 bis 20 Sekunden, um eine Aufforderung zur Eingabe des Passworts zu erhalten.

Ich musste abschalten UseDNS nound neu starten sshd sudo systemctl restart sshd.service. Dann funktioniert es von allen Standorten.

Ich weiß, dass die Frage beantwortet und akzeptiert wird, aber ich wollte die Informationen hinzufügen, da ich sie "aktiv" auf " nein " setzen musste, damit sie nicht mehr DNS verwenden.

qrikko
quelle
0

Bitte überprüfen Sie, ob nslcd (LDAP-Daemon) ausgeführt wird:

ps -ef | grep nslcd

Es kann dieses Problem verursachen.

Wenn es ausgeführt wird, beenden Sie es und entfernen Sie es aus der Liste der Dienste

service nslcd stop
chkconfig nslcd off
Anu V Das
quelle