SSH経由でrootとしてサーバーに接続できません

SSH経由でrootとしてサーバーに接続できません

Windows 上の VS Code のリモート エクスプローラーを使用して、Ubuntu からサーバーにアクセスしたいのですが、パスワードを毎回入力するのは面倒なので、ssh-keygen を使用して ssh キーを生成してみました。キーは通常のユーザーでは問題なく機能しますが、root としてログインできません。

cmd (ssh root@<server_ip>) からのエラー:

root@<server_ip>: Permission denied (publickey,password).

次のエラー/var/log/auth.log:

sshd[1012327]: Connection reset by authenticating user root <client_ip> port 59021 [preauth]

私が見た解決策はすべて sshd_config について言及していましたが、その中で root ログインが有効になっています。sshd_config:

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

公開キーを/home/user/.ssh/authorized_keysファイルに追加しました。このキーはユーザー専用のようですが、ガイドによるとルートにも使用できるようです。

では、なぜ root として接続できないのでしょうか?

答え1

このキーはユーザー専用のように思えますが、ガイドによると、ルートにも使用できるようです。

ガイドはあなたを誤った方向に導きました。

各ユーザーには独自のホーム ディレクトリがあり、したがって独自の がありますauthorized_keys。ルートのホーム ディレクトリは通常 です/root/。したがって、ルートとしてログインするための関連ファイルは です/root/.ssh/authorized_keys。 とは関係ありません/home/user/.ssh/authorized_keys

考えてみてください。これは通常の/home/user/.ssh/authorized_keysユーザーに属し、userあるいはそうではないかもしれないsudo アクセス権を持ちます。ユーザーはそこに任意のキーを登録できます。root が同じファイルを使用した場合、ユーザーは何らかのキーを承認するだけで root としてログインできます。

関連情報