为什么 ssh-copy-id 需要详细 LogLevel 才能在这种情况下工作?

为什么 ssh-copy-id 需要详细 LogLevel 才能在这种情况下工作?

我正在尝试使用 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(这几乎不是您想要的,除非您确定连接会成功或者您不在乎它是否会成功)。

相关内容