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

:Linux インスタンスへの SSH ログイン時の「Access denied」エラーの解決

最終更新日:Nov 20, 2025

問題の説明

  • リモートログインの失敗: PuTTY、XShell、SecureCRT などのサードパーティの Secure Shell (SSH) クライアントを使用して Linux インスタンスに接続すると、接続が Access denied または Permission denied, please try again. エラーで失敗します。

  • システムセキュリティログ: システムログファイル /var/log/secure には、not allowed because などのメッセージが含まれています。

原因

デフォルトでは、Linux インスタンスの SSH サービスでは、どのシステムユーザーでも自身の認証情報 (パスワードまたはキー) を使用してログインできます。SSH サービス構成ファイル /etc/ssh/sshd_config でログイン制限ポリシーが有効になっている場合、構成が正しくないと、特定のユーザーがインスタンスにログインできなくなる可能性があります。

  • AllowUsers: ユーザーのホワイトリスト。リスト内のユーザーのみがログインできます。

  • DenyUsers: ユーザーのブラックリスト。リスト内のユーザーはログインアクセスを拒否されます。

  • AllowGroups: ユーザーグループのホワイトリスト。リストされたグループ内のユーザーのみがログインできます。

  • DenyGroups: ユーザーグループのブラックリスト。リストされたグループ内のユーザーはログインアクセスを拒否されます。

拒否ポリシー (Deny*) は、許可ポリシー (Allow*) よりも優先度が高くなります。ユーザーが許可ポリシーと拒否ポリシーの両方に一致する場合、アクセスは拒否されます。

解決策

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

    1. ECS コンソール - インスタンスに移動します。上部のナビゲーションバーで、ターゲットリージョンとリソースグループを選択します。

    2. ターゲットインスタンスの詳細ページに移動します。[接続] をクリックし、[VNC] を選択します。ユーザー名とパスワードを入力して ECS インスタンスにログインします。

  2. SSH 構成ファイルを確認して変更します。

    1. エラーが発生した場合に復元できるように、構成ファイルをバックアップします。

      sudo cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.bak
    2. アクセスの制御ポリシーを見つけて調整します。

      sudo vi /etc/ssh/sshd_config

      次のいずれかの方法でファイルを変更します。

      • 方法 1: すべての制限ルールをコメントアウトする

        ログイン制限を削除するには、各行の先頭に # 記号を追加して、AllowUsersDenyUsersAllowGroups、および DenyGroups パラメーターをコメントアウトします。これにより、すべてのシステムユーザーがログインできるようになります。

        # AllowUsers userA userB
        # DenyUsers userC
      • 方法 2: 制限ルールを修正する

        ポリシーが曖昧にならないように、ホワイトリスト (Allow*) ルールとブラックリスト (Deny*) ルールを同時に使用しないでください。

        • ホワイトリストポリシーを使用する (特定の少数のユーザーのみにログインを許可するシナリオの場合)

          AllowUsers または AllowGroups パラメーターのみを保持します。ログインアクセスが必要なユーザーまたはユーザーグループをリストに追加します。次に、すべての Deny* パラメーターをコメントアウトまたは削除します。

           AllowUsers userA userB newUser
           # DenyUsers userC 
          この例では、ユーザー userAuserB、および newUser のみがログインでき、他のすべてのユーザーのアクセスは拒否されます。
        • ブラックリストポリシーを使用する (特定の少数のユーザーのログインアクセスを拒否する必要があるシナリオの場合)

          DenyUsers または DenyGroups パラメーターのみを保持します。ブロックしたいユーザーまたはユーザーグループをリストに追加します。次に、すべての Allow* パラメーターをコメントアウトまたは削除します。

          # AllowUsers userA userB
           DenyUsers userC userD
          この例では、ユーザー userCuserD のアクセスを拒否し、他のすべてのユーザーのログインを許可します。
  3. SSH サービスを再起動して、新しい構成を適用します。

    sudo systemctl restart sshd.service
    サービスが起動に失敗した場合は、cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config コマンドを実行して、バックアップから構成ファイルを復元します。
  4. サードパーティの SSH クライアントでインスタンスに再度ログインし、問題が解決されたことを確認します。