无法通过 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。

那么为什么我不能以 root 身份连接?

答案1

在我看来,此密钥仅适用于用户,但从指南来看,我也可以将其用于 root。

导游误导了您。

每个用户都有自己的主目录,因此也有自己的authorized_keys。root 的主目录通常是/root/。因此,以 root 身份登录的相关文件是/root/.ssh/authorized_keys。它与 无关/home/user/.ssh/authorized_keys

想一想。/home/user/.ssh/authorized_keys属于user普通用户,并且可能或者可能不会具有 sudo 访问权限。用户可以在那里注册任何密钥。如果 root 使用相同的文件,那么用户只需授权某个密钥即可以 root 身份登录。

相关内容