Quando provo a ssh
, la richiesta della password impiega troppo tempo (quasi due minuti) per apparire.
Perché succede?
Quando provo a ssh
, la richiesta della password impiega troppo tempo (quasi due minuti) per apparire.
Perché succede?
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).
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.
È 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
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.
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.
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
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.
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.
Leggi altre domande sui tag ssh