请问此类SSH密钥对是否足以实现无需密码和用户名的SSH登录?
这个公钥格式不对,无法直接实现无密码SSH登录
先直接给结论:你拿到的这个keys.pub内容格式有问题,不能直接用来免密登录,而且对方说“无需用户名”的说法也不准确。下面具体拆解:
- 公钥格式错误:正常的SSH公钥格式应该是
ssh-rsa [公钥字符串] [可选注释],但你提供的内容开头多了root: root: root:这一串无效前缀。这部分是完全多余的,会被SSH客户端/服务端识别为无效的公钥内容。 - 正确的处理步骤:
- 先清理公钥内容:删掉开头的
root: root: root:,只保留从ssh-rsa开始到结尾的部分。 - 将处理后的公钥添加到目标服务器对应用户的
~/.ssh/authorized_keys文件中(如果要登录root用户,就是/root/.ssh/authorized_keys)。如果这个文件或目录不存在,需要手动创建:mkdir -p /root/.ssh chmod 700 /root/.ssh echo "清理后的公钥内容" >> /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys - 权限非常重要:
~/.ssh目录必须是700权限,authorized_keys必须是600权限,否则SSH服务会因为权限过于开放而拒绝使用这个密钥。
- 先清理公钥内容:删掉开头的
- 关于“无需用户名”的误区:SSH登录必须指定目标服务器的用户名(除非你本地登录的用户名和服务器上的目标用户名完全一致,这时可以省略),不存在完全不需要用户名就能登录的情况。比如你要登录root用户,还是需要执行
ssh root@你的服务器IP。
处理完之后,你可以手动测试一下登录,确认是否能成功免密登录。
内容的提问来源于stack exchange,提问作者kpopguy
相关产品推荐
相关产品推荐

