我在 Linux 服务器上设置了 sshd,并设法通过使用 生成的密钥登录ssh-keygen
。但是,我观察到以下情况:当我在客户端上生成密钥对并将公钥复制到服务器时,一切正常。但是当我在服务器上生成密钥对并将私钥复制到客户端时,我无法登录。有人能向我解释是否以及为什么必须在客户端上创建密钥吗?
答案1
无需在客户端上创建密钥。甚至不需要使用相同的操作系统创建密钥。如果使用正确的工具,您可以将 Putty 密钥生成器生成的密钥转换为 OpenSSH 格式的密钥。
您的问题很可能是因为 OpenSSH 和其他一些 SSH 客户端对私钥的权限非常挑剔。
根据您将私钥传输到客户端的方式,密钥的权限可能与服务器不同,并且是错误的。私钥应始终为0600
或-rw-------
。
如果您在连接时将选项传递给 ssh,您将在客户端上看到有关此问题的警告-v
。它会抱怨私钥的权限,或者可能是保存私钥的目录。