Perché il prompt "password" di ssh impiega così tanto tempo ad apparire?


94

Quando provo a farlo ssh, la richiesta della password impiega troppo tempo (quasi due minuti) per apparire.

Perché succede?


1
La risposta di Gilles dovrebbe essere la risposta come spiegato nei commenti, davvero.
gertvdijk,

Risposte:


143

Ci sono diverse cose che possono andare storte. Aggiungi -vvvper rendere ssh print una traccia dettagliata di ciò che sta facendo e vedi dove è in pausa.

Il problema potrebbe essere sul client o sul server.

Un problema comune sul server è se ci si connette da un client per il quale si verifica il timeout delle ricerche DNS inverse. (Una "ricerca DNS inversa" significa tornare dall'indirizzo IP della macchina client a un nome host. Non è davvero utile per la sicurezza, solo leggermente utile per diagnosticare i tentativi di interruzione dalle voci di registro, ma la configurazione predefinita lo fa comunque.) Per disattivare le ricerche DNS inverse, aggiungi UseDNS noa /etc/ssh/sshd_config(devi essere root sul server; ricorda di riavviare il servizio SSH in seguito).

Un'altra cosa che può andare storta è il timeout dell'autenticazione GSSAPI . Se non sai di cosa si tratta, probabilmente non ti stai affidando; puoi disattivarlo aggiungendo la linea GSSAPIAuthentication noa /etc/ssh/ssh_configo ~/.ssh/config(che si trova sul lato client).


8
Per me è stato il problema di autenticazione GSSAPIA. Grazie.
RajaRaviVarma,

14
Il mio problema era la ricerca DNS inversa
trinto,

2
Il DNS inverso è stato anche il colpevole per me e lo ha UseDNS noriparato come un fascino. Sono su una rete interna senza server DNS per gestire ricerche inverse per IP interni.
Jordan Mack,

1
Ci sono implicazioni di sicurezza sulla disabilitazione GSSAPIAuthentication? (googling per 15 minuti non ha fatto luce su questo)
Alexander Malakhov il

3
@AlexanderMalakhov Se fai affidamento su questo per accedere, ti bloccherai se lo disabiliti. A parte questo, no. E se stai usando GSSAPI, lo sapresti: avresti dovuto configurare alcuni servizi basati su GSSAPI sulla tua rete.
Gilles

13

Attendi il processo di accesso e vedi quanto tempo impiegherà:

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.

real    0m45.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

Vedi sopra ci sono voluti circa 45 secondi per accedere -------- MOLTO LENTO

Una volta effettuato l'accesso come root, modifica il file sshd_config e modifica la voce UseDNS come di seguito. Qui sto usando sed invece di modificare il file.

[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes

[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no

[root@ISSLABNTL01 ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@ISSLABNTL01 ~]# exit

Cerchiamo il tempo per il processo di accesso e vediamo ora quanto tempo ci vorrà.

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout

Connection to ISSLABNTL01 closed.

real    0m6.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

Vedi ora ci sono voluti 6 secondi, il tempo per me di digitare la password.


fantastico .. a point re time .. useDNS non l'ha riparato per me .. Avevo l'autenticazione della password e il ritardo era per la visualizzazione della richiesta di immissione della password .. Ho aspettato che appaia quindi ha fatto ctrl-c quindi il 'tempo "non mi ha incluso inserendo la password.
barlop

Posso confermare UseDNS noin /etc/ssh/sshd_configfisso il mio problema

UseDNS noRisolto
Pandurang Patil,

@PandurangPatil Opzione di configurazione errata: usedns
Yusef Mohamadi

@zhilevan Dovresti anche menzionare perché è una configurazione errata. Ciò aiuterà a capire perché è una cattiva configurazione
Pandurang Patil,

4

È qualcosa che non va dall'installazione di Ubuntu.

Per risolverlo devi cambiare questa riga in /etc/nsswitch.conf :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

E cambiarlo per questo:

hosts:          files dns

3
La configurazione di Ubuntu non è sbagliata. In alcuni casi (reti domestiche senza server DNS centrali), è la cosa giusta. In altri (reti in cui mDNS richiede il timeout), è un problema.
Gilles,

il [NOTFOUND = return] non dovrebbe essere lì.
Neuquino,

4
@Neuquino Dovrebbe essere lì. È lì per un motivo che apparentemente non capisci. Giocherellare con il tuo in nsswitch.confquesto modo è chiedere problemi e non fornire una soluzione generale per rallentare SSH.
gertvdijk,

Questa mi sembra l'unica soluzione che
funzioni

4

Nel mio caso, il problema può essere risolto riavviando systemd-logind:

systemctl restart systemd-logind

Questo è menzionato su Serverfault .

Devo farlo regolarmente però, e non so quale sia la causa principale del problema.


1

L'output di debug per ssh nel mio caso si è fermato per 30 secondi mentre si stava "connettendo". La soluzione si è rivelata correlata alle impostazioni DNS sul mio sistema locale. Una precedente configurazione di rete aveva lasciato dietro di sé un server DNS falso nel /etc/resolv.conffile. La sostituzione con un server DNS corrente ha risolto il problema.


0

Per me stava cambiando il DNS di sistema in 127.0.0.1, prima di questo c'era un host inesistente.

nano /etc/resolv.conf

E scrivi quanto segue

domain localdomain
search localdomain
(Removed this line) ===> nameserver 10.0.0.1
(Added this line) ===> nameserver 127.0.0.1

Per me, questo file sembrava essere /etc/resolv.conf (no e)
Shadow

0

Non so tanto sull'ambiente del poster quanto vorrei, ma per gli altri con un problema simile, potrebbe essere un problema con sssdcui usiamo per legare ldap mojo.

Questo mi succede:

$ time ssh server.example.com

real  2m0.018s
user  0m0.006s
sys   0m0.004s

Devo accedere al server (nel mio caso tramite la console) quindi eseguire una:

service restart sssd

Dopo ciò, le cose funzionano e basta. Non ho avuto il tempo di eseguire il debug della causa principale, ma questo cerotto funziona per me.


0

Potrei risolvere la richiesta di password lenta tramite ssh - problema selezionando Abilita inoltro DNS nelle impostazioni DHCP sul mio router dlink. Successivamente le connessioni con SSH hanno funzionato in un secondo.

Network Settings -> Router Settings -> Enable DNS Relay [x]

La configurazione predefinita inoltra ogni richiesta DNS al provider. Era lento anche se mi stavo connettendo con ssh pi@10.0.0.103. Un suggerimento per la soluzione era una voce in /etc/resolv.conf "search upc.at" che viene fornita tramite dhcp.

Il manuale di dlink afferma:

When DNS Relay is enabled, DHCP clients of the router will be assigned 
the router's LAN IP address as their DNS server. All DNS requests that 
the router receives will be forwarded to your ISPs DNS servers. 
When DNS relay is disabled, all DHCP clients of the router will 
be assigned the ISP's DNS server.

Dopo un rilascio di dhcp su client e server, la connessione tramite SSH è stata nuovamente veloce. HTH.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.