Impossibile SSH, la connessione termina immediatamente con lo stato di uscita 254


12

La cosa più recente che ricordo è cambiare ullim del memlock soft e hard in illimitato. Ora non posso entrare nella macchina.

Questo è il registro ssh.

Authenticated to IP ([IP]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
debug1: Sending env LC_CTYPE = 
debug2: channel 0: request env confirm 0
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Last login: Wed Aug  6 07:18:07 2014 from IP-SOURCE
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug2: channel 0: obuf empty
debug2: channel 0: close_write
debug2: channel 0: output drain -> closed
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug2: channel 0: rcvd eow
debug2: channel 0: close_read
debug2: channel 0: input open -> closed
debug2: channel 0: rcvd close
debug2: channel 0: almost dead
debug2: channel 0: gc: notify user
debug2: channel 0: gc: user detached
debug2: channel 0: send close
debug2: channel 0: is dead
debug2: channel 0: garbage collecting
debug1: channel 0: free: client-session, nchannels 1
Connection to IP closed.
Transferred: sent 4256, received 2504 bytes, in 0.4 seconds
Bytes per second: sent 9616.9, received 5658.0
debug1: Exit status 254

Fino ad ora ho provato senza successo quanto segue:

  1. Sto cercando un login norc noprofile da ssh user@host 'bash --noprofile'

  2. Costringendo un tty di ssh -t user@host

  3. Spostato il bash_profile. Ho provato a frugare ssh user@host.

  4. Rinominare il limits.conffile nella speranza che non venga letto.

  5. Server ssh riavviato.

  6. Esegui un comando tramite knifeasknife ssh "name:server" "come_command"

  7. ssh user@host 'ulimit -l 64', ssh user@host 'ulimit -S -l 64', ssh user@host 'ulimit -H -l 64',ssh user@host 'exec ulimit -H -l 64'

Non sono sicuro che questo modo di eseguire i comandi in linea: ssh user@host "some_command"funzioni, perché non riesco a ottenere un semplice elenco di directory. Ho anche provato a riavviare ssh user@host 'reboot'ma non credo che il comando sia stato eseguito. Ho riavviato anche la macchina da AWS, ma senza successo.

È una causa persa cercando di ssh? Esiste un modo per accedere a ssh nel server?


1
Se la shell di accesso dell'utente remoto è bash, allora bash legge sempre ~ / .bashrc su ssh. Non c'è modo di aggirare questo. Puoi sftp lì e controllare / modificare il tuo bashrc in quel modo?
Stéphane Chazelas,

Ho provato sftp usando CyberDuck, ho ottenuto il SSH_FXP_INITcodice di errore.
theTuxRacer,

Puoi anche ottenere un output più dettagliato usando l' -vopzione o, per di più, l' -vvopzione per ancora di più, quindi l' -vvvopzione. Es ssh -vvv user@host. Ciò potrebbe darti un'idea migliore di dove le cose vanno male.
Warwick,

Ci ho provato. Questo è da dove ho preso il registro.
theTuxRacer

Hai altri file (FTP / HTTP ...?) O shell (console?) Di accesso alla macchina che puoi usare?
Stéphane Chazelas,

Risposte:


12

Prova a cambiare

UsePAM yes

sopra

UsePAM no

in /etc/ssh/sshd_config(per CentOS)


Funziona, ma perché?
FelikZ,

1
scusa, ma non ricordo il motivo)
frad sorvensen,

SELinux è in gioco qui? Mi chiedo se il contesto di sia /etc/security/limits.confstato colmato e Pam non possa più usarlo.
steve,

Se stai usando una distribuzione usando systemdquesta è una cattiva soluzione IMHO. Ciò impedirà loginddi aprire una sessione e quando / se l'utente riavvia il computer, alcuni processi vengono avviati poiché l'utente non verrà arrestato come previsto.
Bigon,

Nel mio caso, il motivo è che il limite di Hard Open Fils per processore è maggiore del nr_open. ( nr_openviene ripristinato al riavvio della macchina): è possibile controllare i file nr_openby cat /proc/sys/fs/nr_opene hard open ulimit -Hn. Se vuoi ancora che l'utente di accesso a ssh utilizzi la configurazione del file Open Open, devi aumentare nr_open:sudo sysctl -w fs.nr_open=NUM_BIGGER_THAN_HARD
Xin Meng

4

Ho avuto un problema simile, mi è sembrato di vedere solo il seguente strano messaggio:

client_input_channel_req: canale 0 rtype risposta stato uscita 0.

L'utente a cui stavo provando a ssh non aveva una shell predefinita .

Ho eseguito il seguente:

chsh -s $(which sh) username 

E poi sono stato in grado di farlo ssh.

Nota: l'
esecuzione su usernamerestituiva il codice di uscita 1(non funzionava) e ora funziona.


1
Merda santa che è criptica! Anche questo era il mio problema. Ho provato a creare un utente "di sistema" (senza HOME e senza SHELL) con cui usare SFTP e ho potuto autenticarmi ma non ho potuto usare SFTP o SCP o SSH. Questo risolto il mio problema. Grazie!
Dave,

2

Ho incontrato questo su Mac OS X in cui la configurazione in ~/.bashrcha avuto un problema che ha causato sshal lavoro, ma sftpper non lavorare. @ stéphane-chazelas sembra avere l'idea giusta nei commenti sopra.

Sul sistema remoto tramite SSH, rinomina ~/.bashrcdi ~/.bashrc-MOVEDritentare e vedere se funziona; quindi ripristinare ~/.bashrce determinare il problema.

Sul mio sistema ~/.bashrcconteneva questo:

if [ -z "$PS1" ] ; then
    exit
fi

Qual era il probabile colpevole.


1

Ho avuto lo stesso problema oggi. La prima cosa che ho notato è stata / var / log al 100% che l'ho risolto e non ha risolto il problema. Non sono riuscito a collegarmi e non posso accedere tramite la GUI, ma potrei CNTRL + ALT + F2 per accedere alla CLI e accedere in quel modo. Ho digitato startx e ho ricevuto un errore che esisteva /tmp/.X0-lock.

Ho rimosso quel file (tecnicamente ho rimosso tutto da / tmp) e sono stato in grado di accedere tramite GUI e anche tramite ssh.


Grazie! Nel mio caso è stato /homeriempito fino al 100% che ho rilevato utilizzando df -hsu CentOS 7.
RAM237

1

Mi è stata modificata la configurazione dei file aperti nel file dei parametri del kernel /etc/security/limits.conf in illimitata e ho perso la connettività.

Dopo aver ripristinato la normalità per l'utente root, ho ripristinato la connettività.

Wrong Example:
## Example hard limit for max opened files
*        hard   nofile unlimited
root     hard   nofile  unlimited
## Example soft limit for max opened files
*        soft   nofile unlimited
root     soft   nofile unlimited

Correct Ex:
## Example hard limit for max opened files
*        hard   nofile 16000
root     hard   nofile 16000
## Example soft limit for max opened files
*        soft   nofile 16000
root     soft   nofile 16000
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.