問題の説明
サードパーティの SSH クライアントを使用して Linux インスタンスに接続すると、正しい認証情報を使用しても接続が拒否されます。次のいずれかのエラーメッセージが表示されます。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic) # エラーメッセージ 1: 試行されたすべての認証方式がサーバーによって拒否されました。
No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic) # エラーメッセージ 2: 相互にサポートされている認証方式が見つかりませんでした。
Connection closed by XX.XX.XX.XX # エラーメッセージ 3: 認証フェーズ中にサーバーが接続を閉じました。解決策
パスワードベースのログイン失敗: インスタンスの設定でパスワードベースのログインが無効になっていないことを確認します。
インスタンスの設定でキーベースのログインが無効になっていないことを確認します。
公開鍵がユーザーの
~/.ssh/authorized_keysファイルに正しく追加されていることを確認します。
ユースケース 1: パスワードベースのログイン失敗
Elastic Compute Server (ECS) インスタンスにログインします。
ECS コンソール - インスタンスに移動します。上部のナビゲーションバーで、ターゲットリージョンとリソースグループを選択します。
インスタンスの詳細ページに移動し、[接続] をクリックして [VNC] を選択します。ユーザー名とパスワードを入力して ECS インスタンスにログインします。
パスワード認証を有効にします。
SSH 設定ファイルを編集します。
PasswordAuthenticationパラメーターがyesに設定されていることを確認します。行がコメントアウトされている場合 (行頭が#)、#文字を削除します。sudo vim /etc/ssh/sshd_configSSH サービスを再起動します。変更を適用するには、SSH サービスを再起動します。
Alibaba Cloud Linux および CentOS の場合:
sudo systemctl restart sshd.serviceDebian および Ubuntu の場合:
sudo systemctl restart ssh.service
修正を検証します。
SSH クライアントから、パスワードを使用して再度接続を試み、修正を検証します。
ユースケース 2: キーベースのログイン失敗
ECS インスタンスにログインします。
ECS コンソール - インスタンスに移動します。上部のナビゲーションバーで、ターゲットリージョンとリソースグループを選択します。
インスタンスの詳細ページに移動し、[接続] をクリックして [Workbench] を選択します。画面の指示に従ってログインし、ターミナルにアクセスします。
キーベースのログインを有効にします。
SSH 設定ファイルを編集します。
sudo vim /etc/ssh/sshd_config編集モードで、
PubkeyAuthenticationパラメーターを見つけます。値が
noであるか、行がコメントアウトされている場合、キーベースのログインは無効になっています。行のコメントを解除し、値をyesに変更してから、ファイルを保存して終了します。値が
yesの場合は、「ユーザーの authorized_keys ファイルに公開鍵をコピーする」に進みます。
公開鍵をユーザーの
authorized_keysファイルにコピーします。Root ユーザー
authorized_keysファイルを編集します。sudo vim /root/.ssh/authorized_keys公開鍵をファイルに貼り付け、各キーを新しい行に配置します。その後、ファイルを保存して閉じます。
ファイル権限を設定します。
権限が正しくないと、SSH ログインが失敗する可能性があります。
sudo chmod 700 /root/.ssh sudo chmod 600 /root/.ssh/authorized_keys
Root 以外のユーザー
以下のコマンドでは、
<username>をターゲットのログインユーザー名に置き換えてください。authorized_keysファイルを編集します。sudo vim /home/<username>/.ssh/authorized_keys公開鍵をファイルに貼り付け、各キーを新しい行に配置します。その後、ファイルを保存して閉じます。
ファイル権限を設定します。
権限が正しくないと、SSH ログインが失敗する可能性があります。
sudo chown -R <username>:<username> /home/<username>/.ssh sudo chmod 700 /home/<username>/.ssh sudo chmod 600 /home/<username>/.ssh/authorized_keys
変更を適用するには、SSH サービスを再起動します。
Alibaba Cloud Linux および CentOS の場合:
sudo systemctl restart sshd.serviceDebian および Ubuntu の場合:
sudo systemctl restart ssh.service
修正を検証します。
SSH クライアントから、キーペアを使用して再度接続を試み、修正を検証します。