SSH thất bại: Yêu cầu phân bổ PTY không thành công trên kênh 0


11

Vì vậy, tôi đã xử lý lỗi và kiểm tra lỗi máy chủ, nhưng các giải pháp không phù hợp. Hầu hết các kết quả là vấn đề với / dev / pts, nhưng điều đó được gắn kết. Các kết quả khác là lỗi với git, nhưng không có git trên máy.

Tài khoản của tôi không bị chặn, tôi vẫn có thể đăng nhập trên bảng điều khiển. Những người dùng khác cũng gặp phải vấn đề này, vì vậy tôi không nghĩ nó có liên quan đến thứ gì đó trong .ssh / của tôi

Tôi nhận được phản hồi này với ssh -vv:

<snip>
debug1: Next authentication method: password
rogier@server's password: 
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug2: channel 0: request env confirm 0
debug2: channel 0: request shell confirm 1
debug2: fd 3 setting TCP_NODELAY
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 100 id 0
PTY allocation request failed on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0

Sau này phiên đóng băng. Có ai có bất cứ ý tưởng những gì đang xảy ra?


5
Bạn có thể sử dụng ssh user@host "/bin/bash -i"để đăng nhập?
Tim

hmm .. yeah, nó hoạt động ...
blauwblaatje

1
Tôi đã thấy một trường hợp các /dev/pt*thiết bị cần phải được gỡ bỏ và thêm lại một cách thủ công vì chúng bị hỏng. Và trong trường hợp đó, sử dụng các công việc xung quanh tôi liệt kê ở trên cũng có hiệu quả.
Tim

@Tim Mình có vấn đề tương tự. Tôi cũng có thể đăng nhập với ssh user@host "/bin/bash -i. Bạn có thể cụ thể hơn về những lệnh tôi phải chạy để sửa lỗi này không? Làm thế nào để tôi khôi phục /dev/pt*? Cảm ơn.
Erwin Rooijakkers

4
@ user2609980 chạy mount, một trong những dòng được xuất ra phải là / dev / pts, hãy lưu ý các tùy chọn. Ngắt kết nối umount /dev/ptsvà kết nối với việc mount -t devpts -o OPTIONS devpts /dev/ptsthay thế TÙY CHỌN bằng các tùy chọn bạn đã quan sát trước khi ngắt kết nối.
Tim

Câu trả lời:


10

Ok, cảm ơn Tim. umounting / dev / pts và sau đó mount / dev / pts đã thực hiện thủ thuật.


Điều này rất lạ. Bất cứ ý tưởng tại sao điều này là như vậy? Đây có phải là một lỗi trình điều khiển thiết bị hoặc cái gì khác? Nó đã được sửa chữa? v.v ...
not2qubit

Không ý kiến. Và tôi đã không nhìn thấy nó một lần nữa.
blauwblaatje

1
@blauwblaatje Mình cũng có vấn đề tương tự. Tôi cũng có thể đăng nhập với ssh user@host "/bin/bash -i. Bạn có thể cụ thể hơn về những lệnh tôi phải chạy để sửa lỗi này không? Cảm ơn.
Erwin Rooijakkers

Theo như tôi có thể nhớ, tôi chỉ làm: umount / dev / pts && mount / dev / pts
blauwblaatje

Tôi chỉ có vấn đề và phải làm mkdir /dev/ptstrước khi nó hoạt động. Nếu không điều này giải quyết vấn đề cho tôi.
Fuchs Angelo

1

hãy để tôi nói cho bạn biết tất cả kinh nghiệm của tôi, tôi cố gắng kết nối từ linux đến windows thông qua ssh, có máy chủ với openssh và những người khác với freessh . Khi máy chủ đã mở, nó hoạt động tốt, nhưng từ lúc này đến giờ nó bắt đầu xuất hiện thông báo "shell request không thành công trên kênh 0" khi freessh là dịch vụ đang chạy (nó xuất hiện từ ngày này sang ngày khác, nó sử dụng để hoạt động tốt hơn mở cửa)

Một thử nghiệm được thực hiện bởi tôi là thử thiết lập sự kết hợp từ một người dùng khác, vì tôi thấy rằng nó hoạt động tốt, tôi sao lưu ~ / .ssh (người dùng trình bày vấn đề này) và sau đó nó hoạt động tốt.

Tôi nghĩ rằng tập tin liên quan đã được biết đến_hosts, perms có vẻ tốt cũng như nội dung, nhưng đó là cách tôi sửa nó.


1

Lỗi chỉ có nghĩa là mở thiết bị đầu cuối giả không thành công. Nhiều khả năng nó không liên quan gì đến ssh. Để gỡ lỗi nó ở phía máy chủ ssh, hãy sử dụng bản demo PTY rất đơn giản như mypty trong http://rachid.koucha.free.fr/tech_corner/pty_pdip.html để xem liệu có thể phân bổ PTY nào không. Nếu không, sử dụng strace để điều tra nơi nó thất bại. (Đối với tôi đó là một thiếu / dev / ptmx liên kết tượng trưng trong một container như được giải thích trong https://www.kernel.org/doc/Documentation/filesystems/devpts.txt )


0

Có thể phụ thuộc vào LANG và cài đặt LC của bạn, nhưng điều này hiệu quả với tôi:

unset LANG        2>/dev/null
unset LC_MONETARY 2>/dev/null
unset LC_NUMERIC  2>/dev/null
unset LC_MESSAGES 2>/dev/null
unset LC_COLLATE  2>/dev/null
unset LC_CTYPE    2>/dev/null
ssh -l username hostname

2
Tại sao bạn nghĩ rằng vấn đề có thể liên quan đến các biến LANGLC_*môi trường?
Adrian Heine

Tôi tự hỏi những gì tôi đã thay đổi trước khi điều này bắt đầu xảy ra. Tôi thực sự đã thay đổi một số các biến này! Hãy xem nếu nó cũng làm việc cho tôi.
Erwin Rooijakkers

0

Trong trường hợp của tôi, tôi đã kết nối với máy chủ Windows (chạy cygwin và các phần mềm liên quan khác) từ hộp Linux.

Những nỗ lực kỳ lạ để kết nối với máy chủ windows đã hoạt động nhưng không thành công trong khi phân bổ thiết bị đầu cuối tương tác. Kiểm tra ssh -vvnhật ký dưới đây.

...
Authentication succeeded
...
Entering interactive session
Requesting authentication agent forwarding.
Sending environment.
Sending env LANG = en_US.UTF-8
PTY allocation request failed on channel 4
...

Đồng nghiệp của tôi phát hiện ra rằng đó là do nhiều quy trình mở trên máy chủ windows sử dụng thông tin đăng nhập giống như của tôi và thực hiện một số thao tác tự động.

Giết nó tạm thời, thực hiện thủ thuật và cho phép kết nối ssh của tôi thành công.

Nhiều khả năng, windows + cygwin, có giới hạn tối đa trong vấn đề đó. Công việc vẫn là phân bổ lại tài nguyên một cách chính xác khi các quy trình đó được chạy xong.


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.