web-dev-qa-db-ja.com

SSH失敗:チャネル0でのPTY割り当て要求が失敗しました

だから私はエラーをグーグルしてserverfaultをチェックしましたが、解決策は適合しませんでした。ほとんどの結果は/ dev/ptsの問題でしたが、それはマウントされています。他の結果はgitのエラーですが、マシンにはgitがありません。

アカウントはブロックされていませんが、コンソールにログインできます。他のユーザーもこの問題を抱えているので、私の.ssh /にあるものとは関係がないと思います

私は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

この後、セッションはフリーズします。誰かが何が起こっているのか考えていますか?

11
blauwblaatje

OK、ティムに感謝。/dev/ptsをアンマウントしてから、/ dev/ptsをマウントするとうまくいきました。

10
blauwblaatje

エラーは、疑似端末を開くことができなかったことを意味します。ほとんどの場合、sshとは関係ありません。 sshサーバー側でデバッグするには、myptyのような非常に単純なPTYデモを http://rachid.koucha.free.fr/tech_corner/pty_pdip.html で使用して、PTYをすべて。そうでない場合は、straceを使用して、どこで失敗するかを調査します。 (私にとっては、 https://www.kernel.org/doc/Documentation/filesystems/devpts.txt で説明されているように、コンテナに/ dev/ptmxシンボリックリンクがありませんでした)

1
Uwe Geuder

私の経験をすべてお話ししましょう。linuxからwindowssshを介して、opensshのサーバーとfreesshのサーバーがありました。サーバーがopensshを使用している場合、サーバーは正常に動作しますが、freesshがサービスを実行しているときに「シェル要求がチャネル0で失敗しました」というメッセージが表示されるようになりました(ある日から別の日に移動したため、よりうまく機能するために使用します) openssh)

私が行ったテストは、正常に機能していることがわかっているので、別のユーザーからの接続を試行錯誤することでした。

関係するファイルはknown_hostsであり、permはコンテンツと同様に問題なく見えますが、それが私がそれを修正した方法です。

1

私の場合、私はLinuxボックスから(cygwinおよびその他の関連ソフトウェアを実行している)Windowsホストに接続していました。

奇妙なことに接続をWindowsサーバーに試みましたが、インタラクティブ端末の割り当て中に失敗しました。小切手 ssh -vv以下のログ。

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

私の同僚は、それが私のと同じログイン資格情報を使用し、いくつかの自動化されたバッチ操作を実行していたWindowsサーバー上の多くのオープンプロセスが原因であることに気付きました。

一時的にそれを殺し、トリックを行い、私のssh接続を成功させました。

ほとんどの場合、windows + cygwinにはその点で最大制限がありました。リソースの割り当てを解除する作業は残ります正しくこれらのプロセスの実行が終了したとき。

0
MiKu

あなたのLANGとLC設定に依存する可能性がありますが、これは私にとってはうまくいきます:

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
0
Vidar Knive

再びマウントしている間に、

warning: can't open /etc/fstab: No such file or directory

だが、

mount devpts /dev/pts -t devpts

トリックを行う

リファレンス: http://www.iitk.ac.in/LDP/LDP/lfs/5.0/html/chapter06/proc.html

0
rajagopalx