/var/log/secureに以下のログが確認できる場合、原因はsshdが許可しているProtocolのバージョンとSSHクライアントが利用しようとしているProtocolのバージョンとの間に差がある可能性がある。
まずは、自身のsshサーバが許可しているProtocolを確認しましょう。
上記の結果から、私のsshサーバはProtocol version 2 での接続のみを許可していることがわかります。
sshコマンドに「-1」オプションをつけ、許可していないProtocol version 1 で接続を試してみましょう。
見事にエラーになりました。
/var/log/secureを確認してみる(私はすぐに確認したので末尾1行のみを参照する)と、
あれまーお見事!
なので、正しく接続を行いたい接続元から接続を試したときにこのエラーログが出た場合は、/etc/ssh/sshd_configの設定を確認し、必要であれば変更する必要があります。この時点で、利用しているSSHクライアントが対応しているProtocol versionを確認すると、納得がいくかもしれません。設定を変更したあと、sshdの再起動が必要になるのでお忘れなく(xinetd経由でsshサーバを公開している場合は、xinetdの再起動は必要ありません)。
1. sedコマンドで「Protocol 2」を「Protocol 2,1」に書き換え、同時にyyyymmddを末尾につけたバックアップを作成します。
2. 作成されたバックアップを確認します。
3. バックアップと現在の設定の差分を確認します。
4. sshdを再起動します。
以下、sshサーバがsshdで公開されているか、xinetd経由で公開されているかを確認する方法。
私はxinetd経由で公開しているので、上記xinetdになっています。sshd単体で公開されている場合は、sshdになります。
以上
コメント
本当に感謝します!!
ちょうどこのメッセージに悩まされていました!!
xucさん
コメントありがとうございます。
良かったです!