Impossibile connettersi al server tramite SSH - "Server rifiutato di allocare pty"


10

Ho un STRATO V-PowerServer in esecuzione con Ubuntu 10.10 per le mie cose, ma ultimamente ho problemi di connessione al server tramite SSH.

Fondamentalmente tutto ciò che ho è l'accesso ssh al server e, se necessario, posso avviare una modalità di ripristino in cui tutte le mie cose sono in / riparazione in modo da poter fare qualsiasi correzione sul sistema.

Il problema è che quando provo a connettermi al server tramite SSH ottengo questo errore:

Using username "florian".
florian@mydomain.de's password:
Server refused to allocate pty
Linux hwn36335 2.6.18-028stab070.5 #1 SMP Fri Sep 17 15:37:23 MSD 2010 i686 GNU/Linux
     Ubuntu 10.10

                 Welcome to Ubuntu!
                                    * Documentation:  https://help.ubuntu.com/
                                                                              /home/florian/.zlogin:1: command not found: display_info

Quindi la shell non si apre e non posso inserire alcun comando. Ho già provato a cercare Google per "Il server ha rifiutato di allocare pty" ma non sono riuscito a trovare nulla che abbia aiutato, sebbene il problema sia già successo ad altre persone. Inoltre, a volte ricevo anche un errore diverso: "richiesta di allocazione pty non riuscita sul canale 0" invece dell'altro errore. Per questo problema tutto quello che ho potuto trovare è stato questo:

http://blog.dinotools.de/2010/10/03/fehler-pty-allocation-request-failed-on-channel-0

Ma sfortunatamente non ha aiutato ...

Qualcuno ha idea del perché questo errore è causato e cosa potrei provare a risolverlo?

Sarebbe bello se potessi darmi consigli. Conosco alcune cose di base e so come lavorare con il mio server ma se arriva così in profondità nella risoluzione dei problemi, sono ai miei limiti ... ;-) Grazie!

Aggiunta 1:

/var/log/auth.log

Jan 24 16:20:01 h1696522 CRON[3417]: PAM unable to dlopen(/lib/security/pam_smbpass.so): /lib/security/pam_smbpass.so: cannot open shared object file: No such file or directory
Jan 24 16:20:01 h1696522 CRON[3417]: PAM adding faulty module: /lib/security/pam_smbpass.so
Jan 24 16:20:01 h1696522 CRON[3417]: pam_unix(cron:session): session opened for user www-data by (uid=0)
Jan 24 16:20:03 h1696522 CRON[3417]: pam_unix(cron:session): session closed for user www-data

/var/log/daemon.log

Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50003.vdb - dwr50003.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50004.vdb - dwr50004.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50005.vdb - dwr50005.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50006.vdb - dwr50006.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50007.vdb - dwr50007.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50008.vdb - dwr50008.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50009.vdb - dwr50009.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwrtoday.vdb - dwrtoday.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/updates/timestamp -    timestamp with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/update.drl -   update.drl with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: deleting old files ...
Jan 24 16:00:02 h1696522 update.pl[14292]: moving downloaded files from temporary to working directory ...
Jan 24 16:00:02 h1696522 update.pl[14292]: sending notifications ...
Jan 24 16:00:02 h1696522 update.pl[14292]: summary => updated: 0, removed: 0 files and 0 messages
Jan 24 16:00:02 h1696522 update.pl[14292]: Finish Success:   2011-01-24 16:00:02
Jan 24 16:00:02 h1696522 update.pl[14292]: Socket path is /var/drweb/run/updateSock

1
Non farti distrarre dall'errore pty, dovresti verificare che il tuo. i file nella home directory dell'utente non sono danneggiati. Crea un altro utente e confronta quali sono i file predefiniti nella nuova directory utenti con i file per florian.
Patrick R,

Grazie ... Ho aggiunto un altro utente ma i file sono gli stessi. .bash_rc ha una leggera differenza ma dato che la mia shell è impostata su zsh non dovrebbe nemmeno provare a usarla, giusto? @Fussy: ho aggiunto le ultime righe del mio auth.log e del mio daemon.log alla domanda. Questa roba da drweb sembra essere rimasta dell'installazione originale, che aveva Plesk (era ancora l'8.04 che ho aggiornato qualche tempo fa)
florianbaethge,

Risposte:


3

Hai provato a ricreare i dispositivi pty e tty?

root@mydomain.de:~# /sbin/MAKEDEV tty
root@mydomain.de:~# /sbin/MAKEDEV pty

Sembra essere un problema noto sui server virtuali ...

Se non hai accesso a nessuna shell, puoi provare a inviare il comando tramite ssh:

florian@localmachine:~$ ssh root@mydomain.de "/sbin/MAKEDEV tty"
florian@localmachine:~$ ssh root@mydomain.de "/sbin/MAKEDEV pty"

Modificato per riflettere il tuo commento:

Se usi un chroot, devi anche montare / proc, / dev e / sys:

root@h1696522:/# mount -o bind /proc /repair/proc
root@h1696522:/# mount -o bind /dev /repair/dev
root@h1696522:/# mount -o bind /sys /repair/sys

Dovrebbe funzionare ora.


Sì, ho accesso quando utilizzo la modalità di ripristino (e chroot per / riparare): root @ h1696522: / home # / sbin / MAKEDEV tty / sbin / MAKEDEV: avviso: impossibile leggere / proc / devices root @ h1696522: / home # / sbin / MAKEDEV pty / sbin / MAKEDEV: avviso: impossibile leggere / proc / devices / sbin / MAKEDEV: avviso: impossibile leggere / proc / devices
florianbaethge

Questo ha funzionato per me !!! Grazie mille per il tuo aiuto!
florianbaethge,

7

Se hai accesso alla console

mount devpts /dev/pts -t devpts

1
Se puoi SSH come root (e talvolta i sistemi sono configurati per consentirlo) puoi usare questo metodo sopra tramite SSH. In effetti, l'ho appena fatto. ssh root@host "mount devpts /dev/pts -t devpts"era esattamente ciò che il medico ha ordinato.
Emmaly Wilson,

Questo ha funzionato per me, ma ora devo farlo ad ogni riavvio. Come posso automatizzare questo?
Andrew Savinykh,

3

Le volte che ho riscontrato questo errore l'ho risolto certificando che il pacchetto udev era installato e funzionante. Udev si occupa della creazione di nodi dispositivo quando sono necessari, come i PTS / x necessari a ssh. Provaci.


1

Prova questo:

ssh root@host "mount -o remount /dev/pts"

0

Ho dovuto fare una combinazione di ciò che è pubblicato qui. I miei permessi erano sbagliati ed /dev/ptsera già montato.

mount -t devpts -o remount,seclabel,nosuid,noexec,uid=0,gid=5,mode=620 devpts /dev/pts

Usa questo per verificare che le tue autorizzazioni siano corrette.

grep devpts /proc/mounts

Controlla anche /dev/pts. Dovrebbe essere 755 e di proprietà di root.

ls -dl /dev/pts
chmod 755 /dev/pts
chown root:root /dev/pts

Controlla il file sshd_config. PermitTTY non deve essere impostato su no. Se si tratta di commentarlo o impostarlo su Sì. Quindi riavviare sshd.

vi /etc/ssh/sshd_config
service sshd restart
systemctl restart sshd
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.