Không thể kết nối với máy chủ qua SSH - Server Server từ chối phân bổ pty


10

Tôi có một máy chủ STRATO V-PowerServer chạy với Ubuntu 10.10 cho công cụ của tôi nhưng gần đây có vấn đề kết nối với máy chủ thông qua ssh.

Về cơ bản, tất cả những gì tôi có là truy cập ssh vào máy chủ và nếu cần tôi có thể khởi động vào chế độ khôi phục trong đó tất cả các công cụ của tôi đang ở / sửa chữa để tôi có thể thực hiện bất kỳ sửa lỗi nào trên hệ thống.

Vấn đề là, khi tôi cố gắng kết nối với máy chủ qua ssh, tôi gặp lỗi này:

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

Vì vậy, shell không mở và tôi không thể nhập bất kỳ lệnh nào. Tôi đã cố gắng google cho "Máy chủ từ chối phân bổ pty" nhưng không thể tìm thấy bất cứ điều gì có ích, mặc dù vấn đề đã xảy ra với người khác trước đây. Ngoài ra, đôi khi tôi thậm chí còn gặp một lỗi khác: "yêu cầu phân bổ pty không thành công trên kênh 0" thay vì lỗi khác. Đối với vấn đề này, tất cả những gì tôi có thể tìm thấy là:

http://blog.dinotools.de/2010/10/03/fehler-pty-allocation-request-fails-on-channel-0

Nhưng thật không may, nó đã không giúp ...

Có ai có ý tưởng tại sao lỗi này được gây ra và những gì tôi có thể cố gắng khắc phục nó?

Sẽ thật tuyệt nếu bạn có thể cho tôi lời khuyên. Tôi biết một số điều cơ bản và biết cách làm việc với máy chủ của mình nhưng nếu nó đi sâu vào giải quyết vấn đề thì tôi đang ở giới hạn của mình ... ;-) Cảm ơn!

Bổ sung 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
Đừng để bị chệch hướng bởi lỗi pty, bạn nên xác minh rằng. các tập tin trong thư mục nhà của bạn không bị hỏng. Tạo một người dùng khác và so sánh các tệp mặc định trong thư mục người dùng mới với các tệp cho florian.
Patrick R

Cảm ơn bạn ... Tôi đã thêm một người dùng khác nhưng các tệp trong đó đều giống nhau. .bash_rc có một chút khác biệt nhưng vì shell của tôi được đặt thành zsh nên thậm chí không nên thử sử dụng cái này, phải không? @Fussy: Tôi đã thêm các dòng cuối cùng của auth.log và daemon.log của tôi vào câu hỏi. Công cụ drweb này dường như là một phần còn sót lại từ bản cài đặt gốc, có Plesk trên đó (nó vẫn còn trên 8.04 mà tôi đã nâng cấp cách đây một thời gian)
florianbaethge

Câu trả lời:


3

Bạn đã thử tạo lại các thiết bị pty và tty?

root@mydomain.de:~# /sbin/MAKEDEV tty
root@mydomain.de:~# /sbin/MAKEDEV pty

Nó dường như là một vấn đề được biết đến trên các máy chủ ảo ...

Nếu bạn không có quyền truy cập vào bất kỳ shell nào, bạn có thể thử gửi lệnh qua ssh:

florian@localmachine:~$ ssh root@mydomain.de "/sbin/MAKEDEV tty"
florian@localmachine:~$ ssh root@mydomain.de "/sbin/MAKEDEV pty"

Đã chỉnh sửa để phản ánh nhận xét của bạn:

Nếu bạn sử dụng chroot, bạn cũng phải gắn kết / Proc, / dev và / 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

Nó nên hoạt động ngay bây giờ.


Có Tôi có quyền truy cập khi tôi sử dụng chế độ khôi phục (và chroot để / sửa chữa): root @ h1696522: / home # / sbin / MAKEDEV tty / sbin / MAKEDEV: cảnh báo: không thể đọc / Proc / thiết bị root @ h1696522: / home # / sbin / MAKEDEV pty / sbin / MAKEDEV: cảnh báo: không thể đọc / Proc / thiết bị / sbin / MAKEDEV: cảnh báo: không thể đọc / Proc / thiết bị
florianbaethge

Điều này làm việc cho tôi !!! Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn!
florianbaethge

7

Nếu bạn có quyền truy cập bàn điều khiển

mount devpts /dev/pts -t devpts

1
Nếu bạn có thể SSH là root (và đôi khi các hệ thống được cấu hình để cho phép nó), bạn có thể sử dụng phương pháp này ở trên thông qua SSH. Trong thực tế, tôi vừa làm. ssh root@host "mount devpts /dev/pts -t devpts"là chính xác những gì bác sĩ đã ra lệnh.
Emmaly Wilson

Điều này làm việc cho tôi, nhưng tôi cần phải làm điều đó trên mỗi lần khởi động lại bây giờ. Làm thế nào để tôi tự động hóa điều này?
Andrew Savinykh

3

Những lần tôi gặp phải lỗi này, tôi đã sửa nó xác nhận rằng gói udev đã được cài đặt và chạy. Udev đảm nhiệm việc tạo các nút thiết bị khi cần thiết, như PTS / x cần thiết bởi ssh. Hãy thử một lần.


1

Thử cái này xem sao:

ssh root@host "mount -o remount /dev/pts"

0

Tôi đã phải làm một sự kết hợp của những gì được đăng ở đây. Quyền của tôi đã sai và /dev/ptsđã được gắn kết.

mount -t devpts -o remount,seclabel,nosuid,noexec,uid=0,gid=5,mode=620 devpts /dev/pts

Sử dụng điều này để xác minh rằng các quyền của bạn là chính xác.

grep devpts /proc/mounts

Cũng kiểm tra /dev/pts. Nó phải là 755 và được sở hữu bởi root.

ls -dl /dev/pts
chmod 755 /dev/pts
chown root:root /dev/pts

Kiểm tra tệp sshd_config. PermitTTY không nên được đặt thành không. Nếu nó là bình luận hoặc đặt nó thành có. Sau đó khởi động lại sshd.

vi /etc/ssh/sshd_config
service sshd restart
systemctl restart sshd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.