ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน 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 error คุณควรตรวจสอบความถูกต้องของคุณ ไฟล์ในโฮมไดเรกทอรีของผู้ใช้ของคุณจะไม่เสียหาย สร้างผู้ใช้คนอื่นและเปรียบเทียบไฟล์เริ่มต้นที่อยู่ในไดเรกทอรีผู้ใช้ใหม่กับไฟล์สำหรับคนขายดอกไม้
Patrick R

ขอบคุณ ... ฉันได้เพิ่มผู้ใช้คนอื่น แต่ไฟล์ในนั้นมีเหมือนกัน .bash_rc มีความแตกต่างกันเล็กน้อย แต่เนื่องจาก shell ของฉันถูกตั้งค่าเป็น 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 คุณต้อง 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 ในฐานะรูท (และบางครั้งระบบถูกกำหนดค่าให้อนุญาต) คุณสามารถใช้วิธีนี้ด้านบนผ่าน SSH อันที่จริงฉันเพิ่งทำ ssh root@host "mount devpts /dev/pts -t devpts"เป็นสิ่งที่แพทย์สั่ง
Emmaly Wilson

สิ่งนี้ใช้ได้สำหรับฉัน แต่ฉันต้องทำทุกครั้งที่รีบูตตอนนี้ ฉันจะทำสิ่งนี้โดยอัตโนมัติได้อย่างไร
Andrew Savinykh

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 เป็น no ถ้ามันเป็นความเห็นอย่างใดอย่างหนึ่งมันออกมาหรือตั้งเป็นใช่ จากนั้นรีสตาร์ท sshd

vi /etc/ssh/sshd_config
service sshd restart
systemctl restart sshd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.