Ubuntu 22.04.1 をインストールしており、公開鍵 + 秘密鍵認証を使用して ssh にログインしています。
そこで私が取った手順は以下のとおりです
- まず、Mac でキー ペアを作成しました。
- その後、サーバーにアクセスし、
/etc/ssh/sshd_config
SSHログイン用の新しいポートを追加して編集しました。 - ファイアウォール (UFW) でそのポートを開き、デフォルトの 22 を閉じました。
ssh-copy-id -i /path/to/public/key root@host
公開鍵をサーバーにコピーしました。- 次に
/etc/ssh/sshd_config
パスワード認証を禁止する - sshd を再起動し、root で接続をテストしました。接続は正常に機能しました。
- パスワード認証を再度有効にして、新しいポート経由でユーザー名 + パスワードを使用して、sudo ユーザーの 1 人 (root ではない) で ssh をテストしました。接続は正常に機能しました。
- 私は
ssh-copy-id -i /path/to/public/key user@host
、その特定のユーザーの公開鍵を .ssh/authorised_keys にあるサーバーにコピーしました。この手順ではエラーは返されず、1 つの鍵がコピーされたことが報告されました。サーバーにログインして authorised_keys ファイルを再確認したところ、鍵は確かにそこにありました。 - 次に
/etc/ssh/sshd_config
パスワード認証を禁止する - sshd を再起動し、ユーザーとの接続をテストしました。ここが問題なのですユーザーはログインできません。ログインしようとすると、エラーが発生します:
Permission denied (publickey)
パスワード認証を再度有効にすると、正常に接続できますが、キーはまだありません。標準的なユーザー名 + パスワード接続です。
ルート ユーザーに対してまったく同じ組み合わせを使用しているため、キー ペアはテストされています。Permitrootlogin を無効にしたいのですが、できません。何かアイデアはありますか?
編集: @Jos のアドバイスに従い、ルートを使用した詳細なサインインとユーザーを使用したサインインを実行しました。2 つの結果を以下に示します。機密情報やキー、IP などはすべてフィルター処理し、結果をスクリーンショットに変換しました。
そしてユーザー(接続に失敗):
編集: @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