ESXi serverにログインしようとすると、「No supported authentication methods available (server sent: publickey)」というエラーが表示される
Summary: この記事では、ESXiの観点からSSHの問題をトラブルシューティングするための詳細なガイドを提供します。ただし、ここで説明する概念とソリューションは、他のLinuxベースのオペレーティング システムにも適用できるため、この情報はより広範な環境にとって価値があります。
Symptoms
ESXiサーバーへのSSHログインを試行すると、次のような「No supported authentication methods available (server sent: publickey)」というエラーが表示されます。
別のESXi serverからログインしようとすると、次のエラーが表示されます。
Cause
sshd_configファイルの「challengeresponseauthentication」パラメーターが「no」に設定されており、サーバーが非対称認証(RSA公開キー認証と秘密キー認証)用に適切に構成されていないため、サーバーはSSHセッションを拒否します
その結果、PuTTYを使用してサーバーに接続しようとすると、「No supported authentication methods available (server sent: publickey)」というエラーが発生します。
ユーザーが別のESXiホストからSSH接続を確立しようとすると、同様の動作が見られます。この場合、ユーザーは「Load key '/.ssh/id_rsa': error in libcrypto」というエラーを受け取りますが、パスワードの入力は求められず、接続は失敗します。
サーバーが非対称認証用に正しく構成されていないが、「ChallengeResponseAuthentication」パラメーターが「yes」に設定されている場合、ユーザーはエラー メッセージを受け取りますが、パスワードの入力を求められます。パスワードを正しく入力すると、接続が正常に確立されます。
Resolution
DCUIを使用してターゲット サーバー コンソールに接続し、/etc/ssh/sshd_config構成ファイルで チャレンジレスポンス認証 を yes に編集します。
ChallengeResponseAuthenticationです
ChallengeResponseAuthentication 設定は、SSH 接続でチャレンジ/レスポンス認証を許可するかどうかを指定します。このオプションが有効な場合、SSHサーバーは、認証を許可する前にクライアントがチャレンジに応答することを要求します。一部のSSHサーバー実装ではデフォルトで有効になっていますが、Red Hatの記事336773で説明されているように、Red Hatなどの一部のシステムではセキュリティ上の理由から無効になっている場合があります。
ChallengeResponseAuthentication は、 KbdInteractiveAuthentication の非推奨のエイリアスです。リファレンス:OpenSSH: リリースノート
Additional Information
詳細:
-
チャレンジレスポンス認証とパスワード認証の設定を組み合わせると、わずかに異なるプロンプトが生成されます。
ChallengeResponseAuthentication を no に設定し、 passwordauthentication を yes に設定します。

ChallengeResponseAuthentication を no に設定し、 passwordauthentication を yes に設定するか 、両方を yes に設定します。

その他のトラブルシューティング手順:
-
クライアント側から、sshコマンドで -v オプションを使用して、sshの進行状況に関するデバッグ メッセージを出力します。複数の -v オプションを指定すると、冗長性が向上します(最大値は3)。

…

-
ターゲット サーバーで、 LogLevel
設定の冗長性レベルを上げて、失敗したSSHセッション試行の詳細を取得します。
LogLevel
sshd(8)からのメッセージをログに記録する際に使われる冗長性レベルを与える。The possible values are: QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG、DEBUG1、DEBUG2、DEBUG3 デフォルトはINFOです。DEBUG と DEBUG1 は同等です。DEBUG2 と DEBUG3 はそれぞれ、より高いレベルのデバッグ出力を指定します。DEBUGレベルでのログ記録はユーザーのプライバシーを侵害するため、推奨されません。
- エラーの詳細については、ターゲット サーバーの/var/run/log/auth.logを確認します。