当我尝试使用时,它总是返回ssh-copy-id -i /root/.ssh/id_ed25519 [email protected]
Permission denied, please try again
我知道这是一个使用和ssh-copy-id
的脚本。而像将失败。这对我来说很有意义。scp
ssh
scp
[email protected]
但是,在我按照这篇文章中的答案解锁了root用户之后:如何启用 root 登录?,仍然失败。为什么会这样,如何修复:我只想以 root 用户身份 ssh 到 192.168.134.140,无需密码。
答案1
问题中的链接指向在本地计算机上启用 Root 登录。但是,您可能需要配置您的计算机openssh-server
以允许 Root 登录。
但你的主要问题是:
该文件/root/.ssh/id_ed25519
仅可访问root
,这就是您获得 的原因Permission denied
。
你可以使用
sudo ssh-copy-id -i /root/.ssh/id_ed25519 [email protected]`
然而,你应该不是那就这么做吧。
您不需要使用本地root
来连接到远程root
用户。
任何一个:
- 复制
/root/.ssh/id_ed25519
到您的普通用户。sudo cp -t ~/.ssh/ /root/.ssh/id_ed25519* && sudo chown $USER: ~/.ssh/id_ed25519*
- 或者使用以下命令创建新密钥
ssh-keygen
然后ssh-copy-id
与新创建或复制的(不带sudo
)一起使用。
无论如何,
您不应启用并使用root
通过 登录ssh
。而是与“普通”用户连接并使用sudo
以提升权限。如果您想要这种便利,您还可以sudo
为该用户启用无密码登录。
答案2
确保您对 ssh 文件具有正确的权限。
.ssh 文件夹:所有者应具有读取、写入和执行权限。因此,我们需要通过 更改权限
chmod 700 ~/.ssh
。公钥:我们需要给所有者赋予读写权限,给其他组赋予读取权限。因此,我们需要通过 更改权限
chmod 644 <your_public_key>
。私钥:我们需要给所有者读写权限,不给其他组任何权限。我们需要通过 更改权限
chmod 600 <your_private_key>
。
PasswordAuthentication no
检查文件中是否更改了/etc/ssh/sshd_config
。如果已重新生成 ssh-keys,则需要更改文件PasswordAuthentication yes
中的/etc/ssh/sshd_config
。在文件中启用密码验证后,我们只需通过 重新启动 ssh 服务即可sudo systemctl restart ssh
。然后尝试复制公钥。复制 ssh 密钥后,我们可以更改PasswordAuthentication no
并重新启动服务。
您不应启用 root 用户登录,因为这会造成重大安全问题。如果您确实要启用它,请PermitRootLogin yes
在同一个文件中进行设置。