我正在尝试使用 WSL 在 CentOS 7.3 来宾上设置公钥身份验证。
当尝试使用复制公钥时ssh-copy-id
,它被拒绝,说它已经存在于虚拟机上。情况并非.ssh
如此,因为它是全新安装,并且/root
.
经过一番搜索后,错误的文件权限似乎是一个可能的错误,所以我运行了以下命令:
客人
chmod go-w ~
主持人
chmod go-w ~
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/config
chmod 0600 ~/.ssh/id_rsa
chmod 0644 ~/.ssh/id_rsa.pub
chmod 0600 ~/.ssh/known_hosts
在服务器上sshd_config
启用公钥身份验证。结果ssh-copy-id
是一样的。
但是,当我运行时ssh-copy-id -o "LogLevel VERBOSE" root@ip
,它提示我输入密码,然后成功复制了密钥。之后我可以使用ssh root@ip
,并使用我的密钥成功进行身份验证。
ssh
使用密码验证一直有效。
为什么它不能正常工作ssh-copy-id
,但可以使用ssh-copy-id -o "LogLevel VERBOSE"
?
我错过了什么?
答案1
Verbose
不需要。INFO
日志级别就足够了,因为它已经固定在上游存储库。
提交消息对此进行了很好的解释:
LogLevel 设置为“None”,我们将不会得到我们正在寻找的 Permission Denied。
这在默认配置中不是问题(因为默认值INFO
按照手册页)。仅当您在某些配置文件中设置 时才会出现问题LogLevel=QUIET
(这几乎不是您想要的,除非您确定连接会成功或者您不在乎它是否会成功)。