Falha ao conectar ao servidor via SSH - "O servidor recusou-se a alocar pty"

10

Eu tenho um STRATO V-PowerServer rodando com o Ubuntu 10.10, mas ultimamente tenho problemas de conexão com o servidor via ssh.

Basicamente, tudo o que tenho é acesso ssh ao servidor e, se necessário, posso inicializar em um modo de recuperação, onde todas as minhas coisas estão em / reparadas, para que eu possa fazer as correções no sistema.

O problema é que, quando tento conectar-me ao servidor via ssh, recebo este erro:

Using username "florian".
[email protected]'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

Portanto, o shell não abre e não consigo inserir nenhum comando. Eu já tentei procurar no Google por "Server recusou-se a alocar pty", mas não consegui encontrar nada que ajudasse, embora o problema tenha acontecido com outras pessoas antes. Além disso, às vezes recebo um erro diferente: "a solicitação de alocação de pty falhou no canal 0" em vez do outro erro. Para esse problema, tudo o que pude encontrar foi o seguinte:

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

Mas infelizmente não ajudou ...

Alguém tem uma idéia de por que esse erro é causado e o que eu poderia tentar corrigi-lo?

Seria ótimo se você pudesse me dar dicas. Eu sei algumas coisas básicas e sei como trabalhar com o meu servidor, mas se for tão profundo na solução de problemas, estou nos meus limites ... ;-) Obrigado!

Adição 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
florianbaethge
fonte
1
Não se desvie pelo erro pty, você deve verificar isso. os arquivos no diretório inicial do usuário não estão quebrados. Crie outro usuário e compare os arquivos padrão no diretório de novos usuários com os arquivos para florian.
Patrick R
Obrigado ... Adicionei outro usuário, mas os arquivos são iguais. .bash_rc tem uma pequena diferença, mas como meu shell está definido como zsh, ele nem deve tentar usá-lo, certo? @ Fussy: Adicionei as últimas linhas do meu auth.log e meu daemon.log à pergunta. Este material DrWeb parece haver alguma sobra a partir da instalação original, que tinha Plesk sobre ele (ele ainda estava em 8,04 que eu atualizado há um tempo atrás)
florianbaethge

Respostas:

3

Você tentou recriar dispositivos pty e tty?

[email protected]:~# /sbin/MAKEDEV tty
[email protected]:~# /sbin/MAKEDEV pty

Parece ser um problema conhecido em servidores virtuais ...

Se você não tem acesso a nenhum shell, tente enviar o comando via ssh:

florian@localmachine:~$ ssh [email protected] "/sbin/MAKEDEV tty"
florian@localmachine:~$ ssh [email protected] "/sbin/MAKEDEV pty"

Editado para refletir seu comentário:

Se você usa um chroot, também precisa montar / 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

Deve funcionar agora.

petrus
fonte
Sim, eu tenho acesso quando uso o modo de recuperação (e chroot para / reparo): root @ h1696522: / home # / sbin / MAKEDEV tty / sbin / MAKEDEV: aviso: não é possível ler / proc / devices root @ h1696522: / home # / sbin / MAKEDEV pty / sbin / MAKEDEV: aviso: não é possível ler / proc / devices / sbin / MAKEDEV: aviso: não é possível ler / proc / devices #
florianbaethge
Isso funcionou para mim !!! Muito obrigado pela sua ajuda!
Florianbaethge
7

Se você tiver acesso ao console

mount devpts /dev/pts -t devpts
Andre
fonte
1
Se você puder fazer o SSH como root (e às vezes os sistemas estiverem configurados para permitir isso), poderá usar este método acima via SSH. Na verdade, eu acabei de fazer. ssh root@host "mount devpts /dev/pts -t devpts"Foi exatamente o que o médico pediu.
Emmaly Wilson
Isso funcionou para mim, mas preciso fazer isso em todas as reinicializações agora. Como automatizo isso?
Andrew Savinykh 28/03
3

Nas vezes em que encontrei esse erro, eu o corrigi, certificando que o pacote udev estava instalado e em execução. O Udev cuida da criação de nós de dispositivos quando eles são necessários, como o PTS / x necessário pelo ssh. De uma chance.

coredump
fonte
1

Tente o seguinte:

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

Eu tive que fazer uma combinação do que é postado aqui. Minhas permissões estavam erradas e /dev/ptsjá estavam montadas.

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

Use isso para verificar se suas permissões estão corretas.

grep devpts /proc/mounts

Verifique também /dev/pts. Deve ser 755 e pertencente à raiz.

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

Verifique o arquivo sshd_config. PermitTTY não deve ser definido como não. Se for, comente ou defina como sim. Em seguida, reinicie o sshd.

vi /etc/ssh/sshd_config
service sshd restart
systemctl restart sshd
cokeude
fonte