SSHでは、root以外のユーザーによる公開鍵ログインは許可されません。

SSHでは、root以外のユーザーによる公開鍵ログインは許可されません。

Ubuntu 22.04.1 をインストールしており、公開鍵 + 秘密鍵認証を使用して ssh にログインしています。

そこで私が取った手順は以下のとおりです

  1. まず、Mac でキー ペアを作成しました。
  2. その後、サーバーにアクセスし、/etc/ssh/sshd_configSSHログイン用の新しいポートを追加して編集しました。
  3. ファイアウォール (UFW) でそのポートを開き、デフォルトの 22 を閉じました。
  4. ssh-copy-id -i /path/to/public/key root@host公開鍵をサーバーにコピーしました。
  5. 次に/etc/ssh/sshd_configパスワード認証を禁止する
  6. sshd を再起動し、root で接続をテストしました。接続は正常に機能しました。
  7. パスワード認証を再度有効にして、新しいポート経由でユーザー名 + パスワードを使用して、sudo ユーザーの 1 人 (root ではない) で ssh をテストしました。接続は正常に機能しました。
  8. 私はssh-copy-id -i /path/to/public/key user@host、その特定のユーザーの公開鍵を .ssh/authorised_keys にあるサーバーにコピーしました。この手順ではエラーは返されず、1 つの鍵がコピーされたことが報告されました。サーバーにログインして authorised_keys ファイルを再確認したところ、鍵は確かにそこにありました。
  9. 次に/etc/ssh/sshd_configパスワード認証を禁止する
  10. sshd を再起動し、ユーザーとの接続をテストしました。ここが問題なのですユーザーはログインできません。ログインしようとすると、エラーが発生します:Permission denied (publickey)パスワード認証を再度有効にすると、正常に接続できますが、キーはまだありません。標準的なユーザー名 + パスワード接続です。

ルート ユーザーに対してまったく同じ組み合わせを使用しているため、キー ペアはテストされています。Permitrootlogin を無効にしたいのですが、できません。何かアイデアはありますか?

編集: @Jos のアドバイスに従い、ルートを使用した詳細なサインインとユーザーを使用したサインインを実行しました。2 つの結果を以下に示します。機密情報やキー、IP などはすべてフィルター処理し、結果をスクリーンショットに変換しました。

ルートデバッグ接続(詳細)

そしてユーザー(接続に失敗):

verboseを使用したユーザーデバッグ接続

編集: @steeldriver は、authorized_keys ファイルが過度に許可されているかどうかを確認するために namei を実行することを提案しました。出力は次のとおりです。

| => namei -l ~/.ssh/authorized_keys
f: /home/spitixorismesiti/.ssh/authorized_keys
drwxr-xr-x root             root             /
drwxr-xr-x root             root             home
drwxrwx--- spitixorismesiti spitixorismesiti spitixorismesiti
drwx------ spitixorismesiti spitixorismesiti .ssh
-rw------- spitixorismesiti spitixorismesiti authorized_keys

関連情報