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


10

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

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

Проблема в том, что когда я пытаюсь подключиться к серверу через 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

1
Не отвлекайтесь на ошибку pty, убедитесь, что ваша. файлы в домашнем каталоге вашего пользователя не повреждены. Создайте другого пользователя и сравните файлы по умолчанию в каталоге новых пользователей с файлами для florian.
Патрик Р

Спасибо ... Я добавил другого пользователя, но файлы там такие же. .bash_rc имеет небольшую разницу, но поскольку моя оболочка установлена ​​на zsh, она даже не должна пытаться использовать эту, верно? @Fussy: Я добавил последние строки моего auth.log и daemon.log к вопросу. Похоже, что этот drweb остался от оригинальной установки, на которой был установлен Plesk (это было еще 8.04, который я обновил некоторое время назад)
florianbaethge

Ответы:


3

Вы пытались воссоздать 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

Это должно работать сейчас.


Да, у меня есть доступ, когда я использую режим восстановления (и chroot для / repair): root @ h1696522: / home # / sbin / MAKEDEV tty / sbin / MAKEDEV: предупреждение: не могу прочитать / proc / devices root @ h1696522: / home # / sbin / MAKEDEV pty / sbin / MAKEDEV: предупреждение: не могу прочитать / proc / devices / sbin / MAKEDEV: предупреждение: не могу прочитать / proc / devices
florianbaethge

Это сработало для меня! Спасибо большое за помощь!
florianbaethge

7

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

mount devpts /dev/pts -t devpts

1
Если вы можете использовать SSH в качестве пользователя root (и иногда системы настроены на это), вы можете использовать этот метод выше через SSH. На самом деле, я только что сделал. ssh root@host "mount devpts /dev/pts -t devpts"именно то, что доктор прописал.
Эммали Уилсон

Это сработало для меня, но мне нужно делать это при каждой перезагрузке сейчас. Как мне это автоматизировать?
Андрей Савиных,

3

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



0

Я должен был сделать комбинацию того, что размещено здесь. Мои разрешения были неправильными и /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 не должен быть установлен в нет. Если это либо закомментировать, либо установить да. Затем перезапустите sshd.

vi /etc/ssh/sshd_config
service sshd restart
systemctl restart sshd
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.