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

Simple Application Server:SSH を使用して root ユーザーとして Linux シンプルアプリケーションサーバーにログオンするときに表示される "Permission denied, please try again" エラーの処理方法

最終更新日:Dec 24, 2024

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

問題の説明

オンプレミスの SSH クライアントを使用して Linux シンプルアプリケーションサーバーにログオンしようとすると、正しいパスワードを入力しても、次のようなエラーメッセージが表示されます。

  • Permission denied, please try again.

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

原因

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

  • シンプルアプリケーションサーバーで root ユーザーによるログオンを拒否する: SSH サービスの /etc/ssh/sshd_config 設定ファイルの PermitRootLogin または PasswordAuthentication パラメーターが no に設定されています。この問題の解決方法については、root ユーザーによるログオンの拒否 を参照してください。

    • PermitRootLoginno に設定されている場合、root ユーザーによるログオンは拒否されます。

    • PasswordAuthenticationno に設定されている場合、パスワードベースのログオンは拒否されますが、キーベースのログオンは許可されます。

  • サーバーで SELinux サービスが有効になっている: サーバーで SELinux が有効になっている場合、root ユーザーまたは通常のユーザーとしてサーバーに接続しようとすると、エラーが報告される場合があります。

    cat /var/log/secure コマンドを実行して、セキュアログをクエリします。ログに error: Could not get shadow information for root. が含まれている場合、SELinux が有効になっています。この問題の解決方法については、SELinux の無効化 を参照してください。

原因 1 による問題の解決策

  1. レスキュー機能を使用してシンプルアプリケーションサーバーに接続します。詳細については、レスキュー機能を使用して Linux サーバーに接続する を参照してください。

  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 restart sshd.service

原因 2 による問題の解決策

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

  1. SELinux のステータスを確認します。

    1. レスキュー機能を使用してシンプルアプリケーションサーバーに接続します。詳細については、レスキュー機能を使用して Linux サーバーに接続する を参照してください。

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

      /usr/sbin/sestatus -v 

      出力例:

      SELinux status:       enabled
      説明

      有効な値:

      • enabled: SELinux が有効です。

      • disabled: SELinux が無効です。

  2. SELinux を無効にします。

    SELinux を一時的に無効にする

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

    setenforce 0

    SELinux を永続的に無効にする

    1. 次のコマンドを実行して、SELinux を永続的に無効にします。

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

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

    2. 設定を有効にするには、サーバーを再起動します。詳細については、サーバー情報の表示 を参照してください。