У меня есть 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