SSH başarısız: Kanal 0'da PTY ayırma isteği başarısız oldu


11

Bu yüzden hatayı araştırdım ve serverfault'u kontrol ettim, ancak çözümler uymadı. Sonuçların çoğu / dev / pts ile ilgili problemlerdi, ancak bu bir araya getirildi. Diğer sonuçlar git ile ilgili hatalardır, ancak makinede git yoktur.

Hesabım engellenmedi, yine de konsolda oturum açabilirim. Diğer kullanıcıların da bu sorunu var, bu yüzden benim .ssh /

Bu yanıtı ssh -vv ile alıyorum:

<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

Bundan sonra oturum donar. Neler olup bittiğine dair bir fikri olan var mı?


5
ssh user@host "/bin/bash -i"Giriş yapmak için kullanabiliyor musunuz?
Tim

hmm .. evet, işe yarıyor ...
blauwblaatje

1
/dev/pt*Aygıtların çıkarılması ve elle yeniden eklenmesi gereken bir durum gördüm çünkü bozuldu. Ve bu durumda, yukarıda listelediğim çözümü kullanarak da işe yaradı.
Tim

@Tim Aynı problemim var. Ayrıca giriş yapabilirim ssh user@host "/bin/bash -i. Bunu düzeltmek için hangi komutları çalıştırmam gerektiğine daha açık olabilir misiniz? Nasıl geri yüklerim /dev/pt*? Teşekkürler.
Erwin Rooijakkers

4
@ user2609980 çalıştırmak mount, çıktı satırlardan biri olmalıdır / dev / pts, seçenekleri not edin. Sökme umount /dev/ptsişleminden mount -t devpts -o OPTIONS devpts /dev/ptsönce SEÇENEKLER'i değiştirerek sökün ve yeniden takın .
Tim

Yanıtlar:


10

Tamam, Tim sayesinde. umounting / dev / pts ve sonra mount / dev / pts hile yaptı.


Bu çok tuhaf. Bunun neden böyle olduğuna dair bir fikrin var mı? Bu bir aygıt sürücüsü hatası mı yoksa başka bir şey mi? Düzeltildi mi? vb ...
not2qubit

Fikrim yok. Ve bir daha görmedim.
blauwblaatje

1
@blauwblaatje Aynı problemim var. Ayrıca giriş yapabilirim ssh user@host "/bin/bash -i. Bunu düzeltmek için hangi komutları çalıştırmam gerektiğine daha açık olabilir misiniz? Teşekkürler.
Erwin Rooijakkers

Hatırlayabildiğim kadarıyla, sadece yaptım: umount / dev / pts && mount / dev / pts
blauwblaatje

Ben sadece sorunu vardı ve mkdir /dev/ptsişe yaramadan önce zorunda kaldı . Aksi takdirde bu benim için sorunu çözdü.
Angelo Fuchs

1

bana gelen bağlanmayı deneyin, sen benim deneyim söyleyeyim linux için pencereler , ssh ile birlikte sunucuları vardı Openssh'ın ile ve diğerlerini freessh . Sunucu opensh olduğunda iyi çalışır, ancak bir zamandan beri freessh hizmet çalışırken (bir günden diğerine geldiğinde "kanal 0'da kabuk isteği başarısız oldu" iletisini sunmaya başlıyor) openssh)

Benim tarafımdan yapılan bir test, başka bir kullanıcıdan sapma bağlantısını denemekti, iyi çalıştığını gördüğüm gibi, ~ / .ssh (sorunu sunan kullanıcı) yedekledim ve bundan sonra iyi çalışıyor.

Ben ilgili dosya bilinen_hosts olduğunu düşünüyorum, perms içerik yanı sıra iyi görünüyor, ama ben bunu düzeltmek oldu.


1

Hata sadece sözde terminalin açılmasının başarısız olduğu anlamına gelir. Büyük olasılıkla ssh ile ilgisi yoktur. Ssh sunucusu tarafında hata ayıklamak için herhangi bir PTY tahsis edilip edilemeyeceğini görmek için http://rachid.koucha.free.fr/tech_corner/pty_pdip.html adresinde mypty gibi çok basit bir PTY demosu kullanın . Değilse, nerede başarısız olduğunu araştırmak için strace kullanın. (Benim için https://www.kernel.org/doc/Documentation/filesystems/devpts.txt içinde açıklandığı gibi bir kapta eksik / dev / ptmx symlink idi )


0

Size LANG ve LC ayarlarınıza bağlı olabilir, ancak bu benim için çalışıyor:

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
Neden sorun ile ilgili olabilir sizce LANGve LC_*ortam değişkenleri?
Adrian Heine

Bu başlamadan önce ne değiştirdiğimi merak ediyorum. Aslında bu değişkenlerden bazılarını değiştirdim! Bakalım benim için de işe yarayıp yaramadığını.
Erwin Rooijakkers

0

Benim durumumda, bir Linux kutusundan bir Windows ana bilgisayarına (cygwin ve diğer ilgili yazılımları çalıştırıyor) bağlanıyordum.

Garip bir şekilde Windows sunucusuna bağlanma girişimleri işe yaradı, ancak etkileşimli terminal ayrılırken başarısız oldu. ssh -vvAşağıdaki günlükleri kontrol edin .

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

Meslektaşım, Windows sunucusundaki benimkiyle aynı oturum açma bilgilerini kullanan ve bazı otomatik toplu işlemler yapan birçok açık işlemden kaynaklandığını anladı.

Geçici olarak öldürmek, hile yaptı ve ssh bağlantımı başarıyla izin verdi.

Büyük olasılıkla, windows + cygwin'in bu bağlamda maksimum limiti vardı. Bu işlemler çalıştığında kaynakların doğru şekilde tahsis edilmesine yönelik çalışmalar devam etmektedir .



0

Yeni SSH sertifikaları oluştururken oynadıktan sonra herhangi bir makineye SSH'yi denerken aynı sorunu yaşadım. Yeniden montaj /dev/ptsbenim için hiçbir şey yapmadı, ancak yerel ssh-ajanımdaki kimlikleri temizlemek işe yaradı:

ssh-add -D
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.