Не вдалося підключитися до сервера через SSH - "Сервер відмовився виділити pty"


10

У мене 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

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

Дякую ... Я додав іншого користувача, але файли там такі самі. .bash_rc має незначну різницю, але оскільки моя оболонка встановлена ​​на zsh, вона навіть не повинна намагатися використовувати цю, чи не так? @Fussy: До запиту я додав останні рядки свого auth.log та свого daemon.log. Здається, цей матеріал із дріботи є деяким залишком від оригінальної установки, на якій був Плеск (це було ще 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, вам також доведеться mount / 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 для / ремонту): root @ h1696522: / home # / sbin / MAKEDEV tty / sbin / MAKEDEV: попередження: не вдається прочитати / proc / пристрої root @ h1696522: / home # / sbin / MAKEDEV pty / sbin / MAKEDEV: попередження: не вдається прочитати / proc / пристрої / sbin / MAKEDEV: попередження: не можна читати / proc / пристрої
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 і володіти коренем.

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.