SSH gagal: Permintaan alokasi PTY gagal di saluran 0

11

Jadi saya mencari kesalahan di Google dan memeriksa serverfault, tetapi solusinya tidak cocok. Sebagian besar hasil adalah masalah dengan / dev / pts, tapi itu sudah terpasang. Hasil lainnya adalah kesalahan dengan git, tetapi tidak ada git pada mesin.

Akun saya tidak diblokir, saya masih bisa masuk di konsol. Pengguna lain juga memiliki masalah ini, jadi saya tidak berpikir itu ada hubungannya dengan sesuatu yang ada di .ssh /

Saya mendapatkan respons ini dengan 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 [email protected]
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

Setelah ini, sesi membeku. Adakah yang tahu apa yang sedang terjadi?

blauwblaatje
sumber
5
Apakah Anda dapat menggunakannya ssh user@host "/bin/bash -i"untuk masuk?
Tim
hmm .. ya, itu berhasil ...
blauwblaatje
1
Saya telah melihat kasus di mana /dev/pt*perangkat perlu dihapus dan ditambahkan kembali secara manual karena menjadi rusak. Dan dalam hal ini, menggunakan work-around yang saya sebutkan di atas juga berhasil.
Tim
@Tim saya punya masalah yang sama. Saya juga bisa masuk dengan ssh user@host "/bin/bash -i. Bisakah Anda lebih spesifik tentang perintah apa yang harus saya jalankan untuk memperbaikinya? Bagaimana cara memulihkan /dev/pt*? Terima kasih.
Erwin Rooijakkers
4
@ run user2609980 mount, salah satu baris yang dihasilkan harus / dev / pts, perhatikan opsi. Lepas umount /dev/ptsdan dengan pasang kembali dengan mount -t devpts -o OPTIONS devpts /dev/ptsmengganti OPSI dengan opsi yang Anda amati sebelum dilepas.
Tim

Jawaban:

10

Ok terima kasih untuk Tim. umounting / dev / pts dan kemudian mount / dev / pts melakukan trik.

blauwblaatje
sumber
Ini sangat aneh. Adakah yang tahu mengapa demikian? Apakah ini bug driver perangkat atau sesuatu yang lain? Apakah sudah diperbaiki? dll ...
not2qubit
Tidak ada ide. Dan saya belum melihatnya lagi.
blauwblaatje
1
@blauwblaatje Saya punya masalah yang sama. Saya juga bisa masuk dengan ssh user@host "/bin/bash -i. Bisakah Anda lebih spesifik tentang perintah apa yang harus saya jalankan untuk memperbaikinya? Terima kasih.
Erwin Rooijakkers
Sejauh yang saya ingat, saya hanya melakukannya: umount / dev / pts && mount / dev / pts
blauwblaatje
Saya hanya punya masalah dan harus mkdir /dev/ptssebelum berhasil. Kalau tidak, ini memecahkan masalah bagi saya.
Angelo Fuchs
1

biarkan saya menceritakan semua pengalaman saya, saya mencoba untuk menghubungkan dari linux ke windows melalui ssh, punya server dengan openssh dan yang lainnya dengan freessh . Ketika server memiliki openssh berfungsi dengan baik, tetapi karena waktu untuk sekarang itu mulai menyajikan pesan "permintaan shell gagal pada saluran 0" ketika freessh adalah layanan berjalan (itu datang dari satu hari ke hari lain, itu digunakan untuk bekerja lebih baik daripada openssh)

Tes yang saya lakukan adalah mencoba membangun koneksi dari pengguna lain, karena saya melihat itu berfungsi dengan baik, saya membuat cadangan ~ / .ssh (pengguna yang menunjukkan masalah), dan setelah itu berfungsi dengan baik.

Saya pikir file yang terlibat adalah known_hosts, perms terlihat baik serta kontennya, tapi itulah cara saya memperbaikinya.

Pérez P. Javier E.
sumber
1

Kesalahan hanya berarti bahwa membuka terminal semu gagal. Kemungkinan besar itu tidak ada hubungannya dengan ssh. Untuk debug di sisi server ssh, gunakan demo PTY yang sangat sederhana seperti mypty di http://rachid.koucha.free.fr/tech_corner/pty_pdip.html untuk melihat apakah PTY dapat dialokasikan sama sekali. Jika tidak, gunakan strace untuk menyelidiki di mana ia gagal. (Bagi saya itu adalah symlink yang hilang / dev / ptmx dalam sebuah wadah seperti yang dijelaskan di https://www.kernel.org/doc/Documentation/filesystems/devpts.txt )

Uwe Geuder
sumber
0

Dapat bergantung pada Anda LANG dan pengaturan LC Anda, tetapi ini bekerja untuk saya:

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
Vidar Knive
sumber
2
Menurut Anda mengapa masalahnya bisa terkait dengan variabel LANGdan LC_*lingkungan?
Adrian Heine
Saya bertanya-tanya apa yang saya ubah sebelum ini mulai terjadi. Saya benar-benar mengubah beberapa variabel ini! Mari kita lihat apakah itu juga bekerja untuk saya.
Erwin Rooijakkers
0

Dalam kasus saya, saya menghubungkan ke host Windows (menjalankan cygwin dan perangkat lunak terkait lainnya) dari kotak Linux.

Anehnya upaya untuk terhubung ke windows server berhasil tetapi gagal saat mengalokasikan terminal interaktif. Periksa ssh -vvlog di bawah ini.

...
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
...

Kolega saya menemukan bahwa itu karena banyak proses terbuka di server windows yang menggunakan kredensial login yang sama dengan saya dan melakukan beberapa operasi batch otomatis.

Membunuhnya sementara, melakukan trik, dan membiarkan koneksi ssh saya berhasil.

Kemungkinan besar, windows + cygwin, memiliki batas maksimal dalam hal itu. Pekerjaan tetap untuk mengalokasikan sumber daya dengan benar ketika proses-proses tersebut selesai berjalan.

MiKu
sumber