私のサーバーの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は調整可能な最大デバッグレベルです。)
わかりました。協会、詳細な詳細。