このトピックでは、SSHクライアントからLinux Elastic Compute Service (ECS) インスタンスに接続するときに「Permission denied, please try again」というエラーメッセージが表示される問題の原因と解決策について説明します。
問題の説明
オンプレミスSSHクライアントからLinux ECSインスタンスに接続すると、正しいパスワードを入力しても、次のようなエラーメッセージが表示されます。
許可が拒否されました。もう一度お試しください。
SSHサーバーがパスワードを拒否しました。 もう一度お試しください。
発生原因
上記の問題は、次の理由で発生する可能性があります。
理由1: Linux ECSインスタンスの設定ファイル
/etc/ssh/sshd_config
のPermitRootLogin
またはPasswordAuthentication
パラメーターがno
に設定され、rootユーザーまたはパスワードベースのログオンによるログオンが拒否されます。 問題を解決する方法の詳細については、このトピックの「問題が原因1で発生した場合の解決策」を参照してください。PermitRootLogin
パラメーターがno
に設定されている場合、rootユーザーによるログオンは拒否されます。PasswordAuthentication
パラメーターがno
に設定されている場合、パスワードベースのログオンは拒否されますが、キーベースのログオンは許可されます。
理由2: Linux ECSインスタンスでSELinuxが有効になっています。 Linux ECSインスタンスでSELinuxが有効になっている場合、rootユーザーまたは通常ユーザーとしてインスタンスに接続しようとすると、エラーが発生する可能性があります。
cat /var/log/secure
コマンドを実行して、セキュアログを照会します。 セキュアなログにerror: rootのシャドウ情報を取得できませんでした。
、SELinuxは有効です。 問題を解決する方法の詳細については、「問題が原因2で発生した場合の解決策」をご参照ください。
問題が原因で発生した場合の解決策1
VNC (Virtual Network Computing) を使用してECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
/etc/ssh/sshd_config
ファイルのPermitRootLogin
またはPasswordAuthentication
パラメーターの値を確認します。cat /etc/ssh/sshd_config
次の図に示すコマンド出力が返されます。 コマンド出力では、
PermitRootLogin
およびPasswordAuthentication
パラメーターがno
に設定されます。これは、rootユーザーによるログオンおよびパスワードベースのログオンが拒否されていることを示します。ビジネス要件に基づいて、
PermitRootLogin
およびPasswordAuthentication
パラメーターの値を変更します。SSH設定ファイルを開きます。
vi /etc/ssh/sshd_config
PermitRootLogin
およびPasswordAuthentication
パラメーターの値を変更します。rootユーザーによるログオンを許可するには、
PermitRootLogin
パラメーターをyes
に設定します。パスワードベースのログオンを許可するには、
PasswordAuthentication
パラメーターをyes
に設定します。
Escキーを押し、
:wq
と入力して変更を保存します。
次のコマンドを実行して、SSHサービスを再起動します。
systemctlの再起動sshd.service
問題が原因である場合の解決策理由2
ビジネス要件に基づいてSELinuxを一時的または永続的に無効にして、問題を解決できます。
SELinuxのステータスの確認
VNCを使用してECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、SELinuxのステータスを表示します。
/usr/sbin /setatus-v
サンプル出力:
SELinuxステータス: 有効
説明有効な値:
enabled: SELinuxが有効です。
disabled: SELinuxは無効です。
SELinuxを一時的に無効にする
SELinuxを一時的に無効にすると、ECSインスタンスの再起動後にSELinuxを無効にする設定が無効になります。
VNCを使用してECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、SELinuxを一時的に無効にします。
setenforce 0
SELinuxを完全に無効にする
VNCを使用してECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、SELinuxを完全に無効にします。
sed -iの /SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
説明上記のコマンドは、SELinuxが
enforcing
状態の場合にのみ使用できます。設定を有効にするには、ECSインスタンスを再起動します。 詳細は、「インスタンスの再起動」 をご参照ください。