すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:SSHクライアントからLinuxインスタンスに接続したときに「許可が拒否されました。もう一度お試しください」というエラーメッセージが表示された場合はどうすればよいですか?

最終更新日:Dec 12, 2024

このトピックでは、SSHクライアントからLinux Elastic Compute Service (ECS) インスタンスに接続するときに「Permission denied, please try again」というエラーメッセージが表示される問題の原因と解決策について説明します。

問題の説明

オンプレミスSSHクライアントからLinux ECSインスタンスに接続すると、正しいパスワードを入力しても、次のようなエラーメッセージが表示されます。

  • 許可が拒否されました。もう一度お試しください。

  • SSHサーバーがパスワードを拒否しました。 もう一度お試しください。

発生原因

上記の問題は、次の理由で発生する可能性があります。

  • 理由1: Linux ECSインスタンスの設定ファイル /etc/ssh/sshd_configPermitRootLoginまたは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

  1. VNC (Virtual Network Computing) を使用してECSインスタンスに接続します。

    詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。

  2. /etc/ssh/sshd_configファイルのPermitRootLoginまたはPasswordAuthenticationパラメーターの値を確認します。

    cat /etc/ssh/sshd_config

    次の図に示すコマンド出力が返されます。 コマンド出力では、PermitRootLoginおよびPasswordAuthenticationパラメーターがnoに設定されます。これは、rootユーザーによるログオンおよびパスワードベースのログオンが拒否されていることを示します。

    image

  3. ビジネス要件に基づいて、PermitRootLoginおよびPasswordAuthenticationパラメーターの値を変更します。

    1. SSH設定ファイルを開きます。

      vi /etc/ssh/sshd_config
    2. PermitRootLoginおよびPasswordAuthenticationパラメーターの値を変更します。

      • rootユーザーによるログオンを許可するには、PermitRootLoginパラメーターをyesに設定します。

      • パスワードベースのログオンを許可するには、PasswordAuthenticationパラメーターをyesに設定します。

        image

    3. Escキーを押し、:wqと入力して変更を保存します。

  4. 次のコマンドを実行して、SSHサービスを再起動します。

    systemctlの再起動sshd.service

問題が原因である場合の解決策理由2

ビジネス要件に基づいてSELinuxを一時的または永続的に無効にして、問題を解決できます。

SELinuxのステータスの確認

  1. VNCを使用してECSインスタンスに接続します。

    詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、SELinuxのステータスを表示します。

    /usr/sbin /setatus-v

    サンプル出力:

    SELinuxステータス: 有効
    説明

    有効な値:

    • enabled: SELinuxが有効です。

    • disabled: SELinuxは無効です。

SELinuxを一時的に無効にする

重要

SELinuxを一時的に無効にすると、ECSインスタンスの再起動後にSELinuxを無効にする設定が無効になります。

  1. VNCを使用してECSインスタンスに接続します。

    詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、SELinuxを一時的に無効にします。

    setenforce 0

SELinuxを完全に無効にする

  1. VNCを使用してECSインスタンスに接続します。

    詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、SELinuxを完全に無効にします。

    sed -iの /SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    説明

    上記のコマンドは、SELinuxがenforcing状態の場合にのみ使用できます。

  3. 設定を有効にするには、ECSインスタンスを再起動します。 詳細は、「インスタンスの再起動」 をご参照ください。