ssh si blocca senza la richiesta della password - funziona su root o altri account


14

Ho avuto l'accesso basato su chiave SSH che funziona bene. Quindi, ho cambiato il nome host sul mio computer e l'accesso basato su chiave ha smesso di funzionare. Sembrava avere senso. le chiavi probabilmente si basavano sul mio vecchio nome host. Quindi, ho cancellato tutte le mie chiavi e tutti i file in ~ / .ssh / e li ho rigenerati (e ho cambiato le chiavi autorizzate sui server a cui mi collego)

Ora, ogni volta che provo a ssh, si blocca semplicemente senza la richiesta della password, non importa dove io stia provando a ssh - anche i server in cui non ho configurato l'accesso basato su chiave. Non c'è nulla in .ssh / config.

Inoltre, quando "su -" eseguo il root, ssh funziona perfettamente. nessun problema. Questo succede solo sul mio account utente.

Di seguito sono riportate alcune informazioni di debug da ssh

ssh -vv mylogin@myremoteserver.com
OpenSSH_5.2p1, OpenSSL 0.9.8k 25 mar 2009
debug1: lettura dei dati di configurazione /Users/myname/.ssh/config
debug1: lettura dei dati di configurazione / usr / etc / ssh_config
......
debug1: l'host "myremoteserver.com" è noto e corrisponde alla chiave host RSA.
debug1: chiave trovata in /Users/myname/.ssh/known_hosts:1
debug2: bit impostati: 512/1024
debug1: ssh_rsa_verify: firma corretta
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS inviato
debug1: attesa SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS ricevuto
debug1: SSH2_MSG_SERVICE_REQUEST inviato
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT ricevuto

E poi si blocca qui .....

Ecco l'output di dtruss (come strace ma per OSX) vicino alla fine dove si blocca: sudo dtruss ssh -vv mylogin@myremoteserver.com

seleziona (0x4, 0x508200, 0x0, 0x0, 0x0) = 1 0
leggi (0x3, "$ \ 222 \ 351 {L \ 363 \ 261 \ 25063sN \ 216 \ 300 @ q7 \ 203 \ 276b \ 257 \ 354 \ 337 \ 356 \ 260! {\ 342 \ 017 \ 271 = \ 222, \ 245 \ 347t \ 006 \ 225 \ 257 \ 333; \ 204 \ 020] \ 242 \ 005z # \ 0 ", 0x2000) = 48 0
write (0x2, "debug2: service_accept: ssh-userauth \ r \ n \ 0", 0x26) = 38 0
connect (0x4, 0xBFFFEEA2, 0x6A) = 0 0
write (0x4, "\ 0", 0x4) = 4 0
write (0x4, "\ v5 \ 004 \ 0", 0x1) = 1 0
read (0x4, "\ 0", 0x4) = -1 Err # 4

Sembra che stia provando a leggere qualcosa e si blocca su questo. Se qualcuno ha qualche suggerimento o idea, sarei molto grato!


Ho lo stesso problema su Snow Leopard (10.6.8 con le ultime patch di Apple). Succede solo quando si tenta di connettersi ai server tramite una VPN. Un riavvio risolve temporaneamente il problema, ma inevitabilmente ritorna. La ricerca DNS del server non è il problema (testato quello). Ha qualcosa a che fare con lo stato di SSH sul client. Uccidere ssh-agent o passare a root non risolve il problema.
Daniel,

Risposte:


9

Il motivo per cui il tuo client ssh si blocca per il tuo account ma non per altri account (root) è probabilmente perché c'è qualcosa di sbagliato nel tuo agente ssh. O che ssh-agentnon è in esecuzione o che la sua configurazione è errata in qualche modo.

Per avere una conferma di ciò, puoi provare quanto segue:

unset SSH_AUTH_SOCK
ssh mylogin@myremoteserver.com

Se ti viene chiesto di inserire la passphrase su ssh_key significa che hai un problema con il tuo ssh-agent.

Vedi anche il mio post su questa domanda correlata .


Questo ha fatto il lavoro per me! Tuttavia, devo farlo ogni volta che ho riavviato il mio computer. Conosci un modo per risolvere questo problema in modo permanente?
Johan Dettmar,

@JohanDettmar controlla il mio post collegato e i consigli che contiene. Se non ti aiuta di più, probabilmente sarebbe meglio porre una nuova domanda che descriva il tuo problema con maggiori dettagli.
Tonin,

7

Posso interessarti al DNS inverso?

In sostanza, il client sta eseguendo il DNS inverso sul server o viceversa.

Propongo un test:

Disabilitare le ricerche DNS sul server modificando / etc / ssh / sshd_config e accertandosi che "UseDNS" sia impostato su "no".

Esegui "service ssh reload" (o qualunque altra cosa induca il tuo demone ssh a rileggere la configurazione), quindi riprova.

Per inciso, non è felice di chiederti finalmente dopo un lungo periodo di tempo, vero?

Un'altra cosa che potresti controllare è guardare il contenuto di / etc / hosts sul server per assicurarti che non ci sia nulla di sbagliato.


1

Controlla le autorizzazioni sulla directory ~ / .ssh e i file in essa contenuti. Il tuo umask predefinito potrebbe essere troppo permissivo e quando hai ricreato i file potresti aver inavvertitamente dato loro le autorizzazioni sbagliate. Sono stato bruciato da questo alcune volte me stesso. Nessuno dei client (o server) SSH che ho usato ha mai dato un utile messaggio di errore a riguardo ...


grazie per il consiglio. sembra che i miei permanenti siano gli stessi. posso usare ssh bene con il mio account root e ho verificato che i permessi sono gli stessi di quello. La cosa strana è che si blocca e non dice nulla. Grazie per il tentativo!
Saveraver,

1

hai spazio libero su disco sul tuo client (e sul tuo server)?

df -h


Grazie. Sì. un sacco di spazio. più di 100 concerti gratuiti. Grazie per il suggerimento comunque.
Saveraver,

1

Ho avuto un problema simile.

ssh domain.ip:user.name

Sembra che potrei aggirare il problema forzando un nome di accesso in questo modo.

ssh -v domain.ip -l user.name

1

Per me, l'aggiornamento a Snow Leopard ha risolto il problema. Quindi, penso che fosse correlato a un bug in OSX.


0

Se è a causa di una chiave salvata, dovresti essere in grado di eliminarla dalla tua directory ~ / .ssh nel file known_hosts. Basta trovare la voce ed eliminarla, quindi dovrebbe richiederti di nuovo.

D'altra parte, dovrebbe dare un avviso quando l'host non corrisponde a ciò che è stato registrato.

Ho avuto problemi in cui su OS X la ricerca del nome host si comporta come se fallisse; la connessione scade dall'attesa così a lungo o quando viene visualizzato il messaggio è in attesa da così tanto tempo che ci vogliono circa dieci secondi per inserire una password prima di interrompere la connessione. Non ho mai potuto rintracciarlo nonostante le persone suggerissero di aggiungere l'host in questione al file host. Immagino fosse solo un "problema tecnico con le ricerche DNS di OS X" e ci si aspettava che fosse tollerato ... se qualcun altro avesse questo problema e lo avesse risolto, mi piacerebbe saperlo.


Grazie Bart! Quindi ho praticamente eliminato tutto all'interno di .ssh (saggiamente o saggiamente) e ora non c'è più nulla. Sembra ancora congelarsi e continuare a bloccarsi. Dato che ho spazzato via anche known_hosts, per prima cosa mi chiede se voglio continuare a connettermi, inserisce la chiave nel file known_hosts e si blocca nello stesso posto di prima. Aggiornerò rapidamente la mia risposta per chiarire questo punto. Apprezzo molto il vostro aiuto.
saveraver,

1
Sembra davvero il problema tecnico che stavo incontrando su un MacBook. Sembrava essere in qualche modo correlato alle ricerche DNS, alla fine mi sono arreso e ho vissuto con una lunga pausa prima di connettermi e speravo che fosse risolto in seguito.
Bart Silverstrim,

0

Controllare i registri sul server. Di solito è in /var/log/auth.log(Debian / Ubuntu) o /var/log/secure(RedHat / CentOS). Eventuali problemi con la connessione di solito vengono registrati lì.


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.