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

50102
rcampbell

Antwort: Es wurde tatsächlich eine umgekehrte DNS-Auflösung durchgeführt. Basierend auf den folgenden Vorschlägen und diesem Artikel habe ich meiner sshd_config "UseDNS no" hinzugefügt, ssh neu gestartet, und jetzt wird die Passwort-Eingabeaufforderung sofort angezeigt.

Wenn ich SSH in meinen Server einsetze, bekomme ich die Standardaufforderung "login as:" gefolgt von der Aufforderung "user @ host's password:". Aus irgendeinem Grund dauert es immer eine Weile, bis der zweite angezeigt wird. Mein Server ist nicht ausgelastet und führt normalerweise Befehle sehr schnell aus.

Jetzt reden wir nur etwa 10 Sekunden zwischen dem Zeitpunkt, an dem ich die Eingabetaste für den Benutzernamen drückte, und dem Zeitpunkt, an dem die zweite Eingabeaufforderung angezeigt wird. Wenn Sie dies jedoch sehr oft tun, wird es ärgerlich. Ich vermute, dass Ubuntu mein Benutzerkonto nachschlägt, aber es hat <5 Konten für die gesamte Installation.

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. 

Wo ist msmith mein Benutzername. Was heißt das alles?

25
Wissen Sie (oder möchten), wie Sie Paketschnüffler wie Wireshark oder `tcpdump 'verwenden? Das kann Ihnen sagen, ob der Server tatsächlich die ganze Zeit alleine verwendet oder tatsächlich mit dem Client kommuniziert. Arjan vor 14 Jahren 0

9 Antworten auf die Frage

17
Josh

Ist es möglich, dass Sie einen Reverse-DNS-Lookup für Ihre IP durchführen? 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 da was drin /var/log/messages?

Ich habe eine Warnung im Protokoll: Warnung: Standard-Saltwert (undefiniert in ~ / .ecryptfsrc). Ich habe den gesamten Abschnitt für Ihre Analyse zur Frage gestellt. rcampbell vor 14 Jahren 0
@ rrc7cz, also was ist mit dem umgekehrten DNS? Löst sich Ihre IP-Adresse auf etwas? (Ich bezweifle, dass dies hilfreich sein wird, da meistens Handshakes erforderlich sind, um zu entscheiden, ob eine Aufforderung zur Eingabe des Benutzernamens angezeigt werden soll.) Ein Schnelltest mit Wireshark auf meinem Mac zeigt, dass SSH lange bevor der Benutzername angefordert wird, initiiert wird. Aber * vielleicht * fragen einige Kunden nach diesem Benutzernamen, bevor sie überhaupt eine Verbindung herstellen ...?) Arjan vor 14 Jahren 0
Dieses umgekehrte DNS-Lookup-Problem verlangsamte meine SSH-Verbindungen in einigen Installationen. Wenn dies der Fall ist, kommentieren Sie die Zeile "UseDNS yes" in / etc / ssh / sshd_config aus und starten Sie sshd neu. John Barrett vor 14 Jahren 3
@John, erinnerst du dich, ob sich das * verlangsamte, nachdem * der Benutzername eingegeben wurde? Arjan vor 14 Jahren 0
@Arjan Hrm, guter Punkt ... Ich normalerweise 'ssh user @ host', also dauerte die Passwortabfrage sowieso. Ist das Anfordern des Benutzernamens Teil einer SSH-Auth-Sitzung, oder muss der Client dies vor dem Verbindungsaufbau wissen? Beim Beobachten des Verhaltens des SSH-Clients vermute ich letzteres. Ich werde ein wenig lesen und aktualisieren ... John Barrett vor 14 Jahren 0
@Arjan van Bentem: Vielen Dank für die Hilfe bei dieser Antwort! Sie verdienen den Kredit mehr als ich! Josh vor 14 Jahren 0
"UseDNS no" hat mir auch geholfen! UpVotes für beide Fragen und Antworten! Grizly vor 11 Jahren 1
13
secureBadshah

Wahrscheinlich braucht die umgekehrte DNS-Auflösung (Server, der versucht, den Namen des Clients bei gegebener IP-Adresse zu erhalten) Zeit. Können Sie überprüfen, ob für / etc / ssh / sshd_config die Einstellung "VerifyReverseMapping yes" festgelegt ist? Setzen Sie ihn auf "VerifyReverseMapping no" und prüfen Sie, ob dies hilfreich ist.

Bearbeiten: Es sieht so aus, als ob VerifyReverseMapping jetzt veraltet ist und useDNS die neue Konfiguration in der sshd_config ist .

Es mag zwar zutreffen, aber macht es Sinn, dass die Eingabeaufforderung für den Benutzernamen sofort angezeigt wird. Danach dauert es 10 Sekunden, bis Sie nach dem Kennwort gefragt werden. Arjan vor 14 Jahren 0
Der Client kann den Namen des Servers auflösen und eine Anfrage senden. Aus diesem Grund wird die Benutzeraufforderung sofort angezeigt. Der Server versucht jedoch, den Namen des Clients abzurufen (umgekehrte DNS-Auflösung). Dies kann zu einem Timeout führen, wenn die Eintrittsdosis nicht vorhanden ist. Die Einstellung "VerifyReverseMapping" in der sshd-config steuert diese Prüfung. secureBadshah vor 14 Jahren 0
Dies war der Grund für die Langsamkeit in meinem Fall, so dass es in einigen Fällen zumindest sinnvoll ist. Beachten Sie, dass der Standardwert "yes" ist. Suchen Sie also nicht einfach nach "useDNS" :) Nanne vor 12 Jahren 1
8

In Ihrer Datei sshd_config setzen Sie GSSAPIAuthentication = no

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/84899

3
John T

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

ssh user@server 

hat das eine Wirkung?

Wenn Sie PuTTY verwenden, kann es unter Verbindung -> Daten als Benutzername für die automatische Anmeldung konfiguriert werden .

Dies beschleunigt zwar offensichtlich nicht die Zeit, bis die Passwort-Eingabeaufforderung angezeigt wird, beschleunigt jedoch den gesamten Anmeldeprozess. Vielen Dank rcampbell vor 14 Jahren 1
3
DigitalRoss

Wenn Sie keine richtigen Domain-Namen für alles haben, machen Sie sich einfach etwas aus und legen Sie es ein /etc/hosts. Mal sehen, ob das schneller geht ... .comMache dich nicht mit "Bob", "Carol", "Ted", "Alice" oder was auch immer du willst ...

Wenn das Problem Resolver-Timeouts ist, wird dies behoben.

1
tylerl

Beachten Sie, dass der Client auch eine Reverse-DNS-Überprüfung durchführt. Dies kann 30 Sekunden oder länger dauern, wenn die Reverse-DNS-Zuordnung bei bestimmten Auflösungskonfigurationen nicht vorhanden ist.

Entweder in /etc/ssh/ssh_configoder in ~/.ssh/configSet CheckHostIP no, um diese clientseitige Suche zu deaktivieren.

Siehe man 5 ssh_configfür weitere Details.

1
Rob Belcham

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, als ich mich in einer Linux-Build-Maschine mit Putty unter Windows anmeldete. Das Hinzufügen der IP-Adresse meiner Windows-Box zu / etc / hosts auf dem Linux-Rechner hat das Problem gelöst.

Willkommen bei Super User - Wir bevorzugen im Allgemeinen, dass Sie Details und nicht nur Links angeben. Könnten Sie Ihre Antwort BEARBEITEN, um weitere Informationen über den Link hinzuzufügen? Simon Sheehan vor 12 Jahren 3
1
qrikko

Nur für das Protokoll, ich hatte das gleiche Problem, wo ssh schnell von zu Hause auf meinen Home-Server ging (hauptsächlich für git), aber es würde 10-20 Sekunden dauern, um eine Aufforderung für das Passwort zu erhalten.

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

Ich weiß, dass die Frage beantwortet und akzeptiert wurde, aber ich wollte die Informationen hinzufügen, da ich sie "aktiv" auf " Nein " setzen musste, um die Verwendung von DNS zu beenden.

0
Anu V Das

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

ps -ef | grep nslcd 

Es kann dieses Problem verursachen.

Wenn es läuft, stoppen Sie es und entfernen Sie es aus der Liste der Dienste

service nslcd stop chkconfig nslcd off