![SSH経由でrootとしてサーバーに接続できません](https://rvso.com/image/1692519/SSH%E7%B5%8C%E7%94%B1%E3%81%A7root%E3%81%A8%E3%81%97%E3%81%A6%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93.png)
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 としてログインできます。