奇妙なSSHの問題、sshは-tで動作しますが、それなしでは動作しません。

奇妙なSSHの問題、sshは-tで動作しますが、それなしでは動作しません。

私のサーバーの1つにログインすると、ログインしているようにssh見えますが、プロンプト(message debug2: shell request accepted on channel 0 is the last log entry)が表示される前に停止します。

奇妙にssh -t "/bin/bash"動作しないときも動作します。ssh

私が今まで見つけたもの

  • 同じ地理的な場所にあるサーバーから正常にログインできます。
  • もしそうならssh -t '/bin/bash'- どこからでも完全にログインできます。
  • 私が使うならrsync 到着サーバーが動作しているようで、ロックされました。
  • 私が使うならrsync ~からサーバー、問題なく実行中

私が試したこと

  • すべてのログインオプションを削除または変更.profileする.bashrc /etc/profile
  • 変化ssh_config そして/または sshd_config正常に実行されているのと同じサーバー上
  • 路線を確認してみる
  • ネットワークの専門家に確認を求めたが、tcpdump役に立たなかった。 (再送信が多いようですが)

本当に違うのは思わない。

疑わしいネットワークカードドライバ/ファームウェアは除外されます。

ベストアンサー1

これは、構成ファイルの問題によって発生する可能性があります。シェルを
接続するとssh -t /bin/bash 「ログイン」もされず、ソースでも /etc/profileなく...~/.profile~/.bashrc

したがって、一度接続すると、シェルをデバッグモードに切り替え、各ファイルをソーシングして内部でブロックされている項目を見つけます。

set -x 
. /etc/profile 
...and so on

編集する

私が間違っていることに注意してください。 .bashrcファイルはすべての対話型シェルで選択されます(したがって、ここではプロファイルであるprofile.dファイルのみが重要です)。

接続プロセスのさまざまな手順をリストしてみてください。このような

1) SSH 接続(構成,...)
2) ログイン(PAM, tty, wtmp,...)
3) シェル起動(構成ファイル、ホームディレクトリアクセス、...)

(1) を確認するには、デバッグモードで sshd デーモンを起動できます。これを行うには、専用ポート(ポート22ではないため、通常のsshdデーモンを停止する必要はありません)でリッスンしながら他のsshdを起動する必要があります。

# /usr/sbin/sshd -p 2222 -ddd 

sshdは1つの接続のみを許可し、バックグラウンドに移動しません。別の端末を開き、SSHセッションに接続します。

# ssh -vvv -p 2222 user@host

受信したメッセージを同じブランドの他のサーバーから送信されたメッセージと比較できます。これにより、問題がSSH側にあるかどうかがわかります。

(-dddと-vvvは調整可能な最大デバッグレベルです。)

わかりました。協会、詳細な詳細。

おすすめ記事