我有一位客户提供了他自己的 id_rsa.pub 密钥,他希望我设置一个 SSH 服务器,以便他可以向我发送文件。据我所知,当我设置我的 SSH 服务器(Windows 上的 freesshd)时,我需要一个私钥作为我服务器的指纹。然后使用提供的私钥或生成新的私钥,我可以生成一个公钥,将其绑定到用户帐户,允许我的客户使用该公钥登录,而无需用户/密码组合。
我认为不能将服务器配置为使用不是由与该服务器关联的私钥生成的公钥。
我是否正确?如果现有公钥不是从该服务器的私钥生成的,是否有办法使用现有公钥来设置 SSH 服务器?谢谢大家!
答案1
您的客户端既有私钥(通常称为id_rsa
)也有公钥(通常称为id_rsa.pub
)。
如果他将他的公钥发送给您id_rsa.pub
(公钥只是一个单行文本文件),您将此文件的内容添加到authorized_keys
服务器上(在他的帐户.ssh
目录中),那么此客户端就可以无需密码进行 ssh 连接。他的客户端可以访问他的私钥(id_rsa
),这一简单事实足以使 ssh 建立无密码连接。但这也是为什么私钥应该小心保护,并且永远不要发送给任何人(包括您,服务器所有者)的原因。另一方面,公钥完全可以展示并发送给任何人 - 如果没有私钥,它就毫无用处。
此外(至少在 Linux 上),ssh 对文件id_rsa
、id_rsa.pub
和的权限有一定的规则authorized_keys
。例如,如果私钥和授权密钥的权限不够严格(例如 0600 - 仅限用户拥有),它将拒绝工作。