Perché il prompt "password" di ssh impiega così tanto tempo a comparire?

86

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

Perché succede?

    
posta Neuquino 22.01.2013 - 21:55

8 risposte

135

Ci sono molte cose che possono andare storte. Aggiungi -vvv per rendere ssh print una traccia dettagliata di ciò che sta facendo e vedere dove si trova in pausa.

Il problema potrebbe essere sul client o sul server.

Un problema comune sul server è se ci si sta connettendo da un client per il quale sono scadute le ricerche DNS inverse. (Una "ricerca DNS inversa" significa tornare dall'indirizzo IP della macchina client a un nome host. Non è veramente 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 no a /etc/ssh/sshd_config (devi essere root sul server, ricorda di riavviare il servizio SSH in seguito).

Un'altra cosa che può andare storta è GSSAPI timeout dell'autenticazione. Se non sai cosa sia, probabilmente non stai facendo affidamento su di esso; puoi disattivarlo aggiungendo la riga GSSAPIAuthentication no a /etc/ssh/ssh_config o ~/.ssh/config (che è sul lato client).

    
risposta data Gilles 22.01.2013 - 22:15
12

Lascia il tempo della procedura di accesso e vedi quanto ci vorrà:

[[email protected] ~]# time ssh [email protected]
[email protected]'s password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[[email protected] ~]# exit
logout
Connection to ISSLABNTL01 closed.

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

You have new mail in /var/spool/mail/root
[[email protected] ~]#

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

Una volta effettuato il login come root, modifica il file sshd_config e cambia la voce UseDNS come sotto. Qui sto usando sed invece di modificare il file.

[[email protected] ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes

[[email protected] ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[[email protected] ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no

[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[[email protected] ~]# exit

Dedichiamo tempo alla procedura di accesso e vediamo ora quanto tempo ci vorrà.

[[email protected] ~]# time ssh [email protected]
[email protected]'s password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[[email protected] ~]# exit
logout

Connection to ISSLABNTL01 closed.

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

You have new mail in /var/spool/mail/root
[[email protected] ~]#

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

    
risposta data Mamadou Lamine Diatta 04.10.2013 - 14:39
4

È qualcosa che non va dall'installazione di Ubuntu.

Per risolvere il problema devi modificare questa riga in /etc/nsswitch.conf :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

E cambialo per questo:

hosts:          files dns
    
risposta data Neuquino 22.01.2013 - 21:55
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.

    
risposta data Candid Dauth 22.04.2016 - 19:01
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 fasullo nel file /etc/resolv.conf . La sostituzione con un server DNS corrente ha risolto il problema.

    
risposta data ErikWeitenberg 25.07.2014 - 18:29
0

Per me stava cambiando il sistema dns a 127.0.0.1, prima che questo fosse un host non esistente.

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
    
risposta data Alireza 07.12.2013 - 06:51
0

Non so molto sull'ambiente del poster come mi piacerebbe, ma per gli altri con un problema simile, potrebbe essere un problema con sssd , che 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 a:

service restart sssd

Dopo, le cose funzionano. Non ho avuto il tempo di eseguire il debug della causa principale, ma questo bandaid funziona per me.

    
risposta data KurtB 15.09.2014 - 20:36
0

Potrei risolvere il problema della password lenta tramite ssh - selezionando Abilita inoltro DNS nelle impostazioni DHCP sul mio router dlink. Successivamente le connessioni con SSH hanno funzionato entro 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 [email protected] Un suggerimento per la soluzione era una voce in /etc/resolv.conf "search upc.at" che viene fornita via dhcp.

Il manuale 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 una versione di dhcp su client e server, la connessione tramite SSH era di nuovo veloce. HTH.

    
risposta data domih 19.06.2015 - 21:11

Leggi altre domande sui tag