Назад | Перейти на главную страницу

Не удается подключиться к серверу через SSH - «Сервер отказался выделить pty»

У меня есть STRATO V-PowerServer, работающий с Ubuntu 10.10, но в последнее время возникают проблемы с подключением к серверу через ssh.

В основном все, что у меня есть, - это ssh-доступ к серверу, и при необходимости я могу загрузиться в режиме восстановления, где все мои вещи находятся в / ремонте, чтобы я мог делать любые исправления в системе.

Проблема в том, что когда я пытаюсь подключиться к серверу через ssh, я получаю такую ​​ошибку:

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

Итак, оболочка не открывается, и я не могу вводить какие-либо команды. Я уже пытался найти в Google «Сервер отказался выделить pty», но не смог найти ничего, что помогло бы, хотя проблема уже случилась с другими людьми. Кроме того, я иногда даже получаю другую ошибку: «Не удалось выполнить запрос распределения pty на канале 0» вместо другой ошибки. Для этой проблемы я смог найти следующее:

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

Но, к сожалению, не помогло ...

Кто-нибудь знает, почему возникает эта ошибка и что я могу попытаться исправить?

Было бы здорово, если бы вы могли дать мне советы. Я знаю некоторые базовые вещи и знаю, как работать с моим сервером, но если он так глубоко уходит в решение проблем, я нахожусь на пределе своих возможностей ... ;-) Спасибо!

Дополнение 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

Если у вас есть доступ к консоли

mount devpts /dev/pts -t devpts

Когда я сталкивался с этой ошибкой, я исправлял ее, подтверждая, что пакет udev был установлен и запущен. Udev заботится о создании узлов устройств, когда они нужны, например, PTS / x, которые нужны ssh. Попробуйте.

Вы пытались воссоздать устройства pty и tty?

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

Кажется, это известная проблема на виртуальных серверах ...

Если у вас нет доступа к какой-либо оболочке, вы можете попробовать отправить команду через ssh:

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

Отредактировано, чтобы отразить ваш комментарий:

Если вы используете chroot, вам также необходимо смонтировать / proc, / dev и / 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

Теперь он должен работать.

Попробуй это:

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

Мне пришлось сделать комбинацию из того, что размещено здесь. Мои разрешения были неправильными и /dev/pts уже был установлен.

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

Используйте это, чтобы проверить правильность ваших разрешений.

grep devpts /proc/mounts

Также проверьте /dev/pts. Он должен быть 755 и принадлежать root.

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

Проверьте файл sshd_config. PermitTTY не следует устанавливать в значение no. Если это так, либо закомментируйте, либо установите значение «Да». Затем перезапустите sshd.

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