SSH lento all'inizio della sessione


8

L'avvio di una shell interattiva su SSH è lento per uno dei miei server. Tutto ciò che lo conduce, inclusa la negoziazione della crittografia, è veloce, ma si blocca per 45 secondi. Dopodiché, finisce e ho una shell. Come faccio a identificare a cosa pende? Ho provato a cancellare l'ambiente e disabilitare tutti gli inoltri nel caso in cui questo lo stesse rallentando, ma non ha aiutato. Ecco il mio comando di prova:

env -i ssh -x -a -vvv server

ed ecco l'output di SSH:

debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
*(hangs for 45 seconds here)*
debug3: Wrote 128 bytes for a total of 3191
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.


@forcefsck Non penso che il post sia rilevante. La mia connessione iniziale è veloce, le chiavi si scambiano, l'autenticazione è veloce, nessuna attesa su una richiesta di password come nel post sopra. Inoltre, tutti i DNS forward e reverse dovrebbero essere finiti a questo punto, ne sono abbastanza certo. Inoltre, questo problema non è intermittente come nel post sopra, è ogni volta. L'output dettagliato che ho pubblicato sopra inizia subito dopo il messaggio di autenticazione riuscita. Penso che sia più sulla falsariga di bash o che un modulo di sessione pam sia lento da avviare.
penguin359,

C'è un ritardo anche per le sessioni non interattive? C'è un ritardo quando si avvia una seconda connessione mentre una è attiva? Quale metodo di autenticazione usi? La tua home directory è stata montata automaticamente all'accesso in qualche modo (remoto o crittografato)? Un modulo pam potrebbe essere il colpevole, cosa hai /etc/pam.d/sshd(o comunque è chiamato sul tuo sistema)? Se hai accesso ai registri del server, c'è qualcosa di rilevante?
Gilles 'SO- smetti di essere malvagio' il

@Gilles Sì, sembra influenzare i comandi remoti, scp e sftp. Se intendi due connessioni SSH separate, entrambe sono lente. Se intendi avviare una seconda sessione attraverso lo stesso socket di controllo, l'ho appena provato ed è veloce, ma ricevo un avviso sull'errore di xauth nel bloccare .Xauthority. Uso qualsiasi cosa, da tastiera interattiva, chiave pubblica, basata su host, a gssapi-keyex. L'autenticazione è sempre veloce a prescindere, anche se la velocità varia leggermente. La mia home directory è locale sul server e non crittografata. PAM è essenzialmente Ubuntu predefinito + pam_krb5.so installato.
penguin359,

Dici "lento a uno dei miei server". Si comporta normalmente quando si lancia su altre macchine? E questo viene dal tuo computer di casa, a cui sei connesso localmente? Che cos'è il sistema operativo su locale e remoto (compresa la versione)? Inoltre, lo sshing dal server al tuo computer di casa è normale? Lo sshing come altro utente (sia locale che remoto) fa differenza?
Faheem Mitha,

Risposte:


6

In un caso molto simile, era uno degli script update-motd.

Il seguente ha fatto il trucco:

sudo rm /etc/update-motd.d/90-updates-available

Ecco un piccolo aiuto che misura il tempo di ogni sceneggiatura:

$ for f in /etc/update-motd.d/*;do echo $f;time $f;done
/etc/update-motd.d/00-header            0m0.007s
/etc/update-motd.d/10-help-text         0m0.005s
/etc/update-motd.d/90-updates-available 0m49.163s
/etc/update-motd.d/91-release-upgrade   0m0.152s
/etc/update-motd.d/98-fsck-at-reboot    0m0.015s
/etc/update-motd.d/98-reboot-required   0m0.003s
(output reduced to the relevant parts)

Grazie! Molte persone consigliano semplicemente di disattivare il DNS, ma il mio login ssh era ancora lento. Ho iniziato a scavare nel processo di accesso e la tua risposta mi ha indirizzato a /etc/update-motd.d/50-landscape-sysinfo, che sembrava essere lento.
Rennex,

1
questo è davvero utile - per me l'assassino è stato 50-landscape-sysinfo. E a proposito, puoi semplicemente chmod -x /etc/update-motd.d/90-updates-availableimpedire che venga eseguito all'accesso invece di rimuoverlo del tutto.
Billynoah,

3

pam_krb5.so è stato configurato per acquisire token AFS per una shell inesistente che aveva un timeout di 30 secondi che interrompeva qualsiasi autenticazione usando quel modulo, non solo SSH. Rimosso e l'autenticazione avviene molto più rapidamente.


2

Se il tuo server ssh ha attivato la mappatura DNS inversa, potrebbe essere la causa del ritardo, cerca VerifyReverseMappingnel /etc/ssh/sshd_configfile del server.


1
Pensavo che la mappatura DNS inversa fosse avvenuta prima che l'autenticazione potesse avere successo, ma lo proverò.
penguin359,

Penso che intendi UseDNS, ho ricevuto un avviso deprezzato su VerifyReverseMapping. Indipendentemente da ciò, ho impostato entrambi su no e non ha aiutato. Mi prendo cura di assicurarmi che la mia mappatura inversa sia corretta e che l'host possa mappare il nome host del mio cliente su un record A e viceversa senza alcun problema.
penguin359,

0

Ho avuto lo stesso problema, ma apparentemente causato da qualcos'altro. La soluzione:

/etc/ssh/sshd_config:
#UsePAM yes

e:

sudo /etc/init.d/ssh stop;sudo /etc/init.d/ssh start;
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.