为什么当我尝试通过 ssh - i 登录时必须出示私钥?

为什么当我尝试通过 ssh - i 登录时必须出示私钥?

CentOS Distro - 我使用在主目录中创建了一个自定义私钥/公钥对ssh-keygen -f .custom_location/custom_key。然后,我尝试仅使用只有两个常规用户(user1 和 user2)的远程虚拟机的 IP 将公钥复制到测试虚拟机。当提示我输入复制公钥的密码时,ssh 如何选择一个用户而不是另一个用户?我确认仅在 user1 中创建了 .ssh 文件夹。如果我有三个用户,复制公钥时还会提示user1的密码吗?

当我尝试使用 ssh 进入测试虚拟机时ssh -i .custom_location/custom_key username@ipaddress,为什么需要私钥?我以为连接时会提供公钥。公钥在流程中的哪个位置使用?

我很困惑谁是客户端,谁是服务器。尝试连接的计算机是否是客户端?因此会有known_hosts 文件?

答案1

我不明白你的第一个问题,但我可以回答你的第二个问题。

使用 SSH 客户端并使用公钥身份验证时,源主机上必须拥有私钥,因为公钥身份验证基于非对称加密。私钥永远不会通过线路发送。

要了解更多信息,您可以在源主机:ssh -v和远程主机上配置/etc/ssh/sshd_configLogLevel DEBUG3查看日志。

相关内容