SSH를 통해 서버에 연결하지 못함- "서버에서 pty 할당을 거부했습니다"


10

내 물건에 대해 Ubuntu 10.10으로 실행되는 STRATO V-PowerServer가 있지만 최근에는 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

따라서 쉘이 열리지 않으며 명령을 입력 할 수 없습니다. 나는 이미 "서버가 pty 할당을 거부했다"고 Google에 시도했지만 문제가 전에 다른 사람들에게 발생했지만 도움이되는 것을 찾을 수 없었습니다. 또한 때로는 다른 오류 대신 "0 채널에서 pty 할당 요청이 실패했습니다"라는 오류가 발생하기도합니다. 이 문제에 대해 내가 찾은 것은 다음과 같습니다.

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 용 파일과 비교하십시오.
Patrick R

고맙습니다 ... 다른 사용자를 추가했지만 파일이 동일합니다. .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 to / 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를 사용할 수 있고 때로는 시스템이이를 허용하도록 구성된 경우 SSH를 통해 위의 방법을 사용할 수 있습니다. 사실, 나는 방금했다. ssh root@host "mount devpts /dev/pts -t devpts"의사가 정확히 주문한 것입니다.
Emmaly Wilson

이것은 나를 위해 일했지만 지금 재부팅 할 때마다해야합니다. 이것을 어떻게 자동화합니까?
앤드류 Savinykh

3

이 오류를 권장 한 시간에 udev 패키지가 설치되어 실행 중임을 확인했습니다. Udev는 ssh에 필요한 PTS / x와 같이 필요할 때 장치 노드를 작성합니다. 시도 해봐.



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를 no로 설정해서는 안됩니다. 주석을 달거나 yes로 설정하십시오. 그런 다음 sshd를 다시 시작하십시오.

vi /etc/ssh/sshd_config
service sshd restart
systemctl restart sshd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.