在服务器上生成 SSH 密钥

在服务器上生成 SSH 密钥

我在 Linux 服务器上设置了 sshd,并设法通过使用 生成的密钥登录ssh-keygen。但是,我观察到以下情况:当我在客户端上生成密钥对并将公钥复制到服务器时,一切正常。但是当我在服务器上生成密钥对并将私钥复制到客户端时,我无法登录。有人能向我解释是否以及为什么必须在客户端上创建密钥吗?

答案1

无需在客户端上创建密钥。甚至不需要使用相同的操作系统创建密钥。如果使用正确的工具,您可以将 Putty 密钥生成器生成的密钥转换为 OpenSSH 格式的密钥。

您的问题很可能是因为 OpenSSH 和其他一些 SSH 客户端对私钥的权限非常挑剔。

根据您将私钥传输到客户端的方式,密钥的权限可能与服务器不同,并且是错误的。私钥应始终为0600-rw-------

如果您在连接时将选项传递给 ssh,您将在客户端上看到有关此问题的警告-v。它会抱怨私钥的权限,或者可能是保存私钥的目录。

答案2

每台主机(服务器和客户端)都有两个密钥 - 公钥和私钥。如果想要相互信任,则需要在两者上生成密钥,并将一个密钥从密钥对传输到另一方(从两台主机)。

请阅读以下内容指导

可能会有帮助。而且很可能这个。

相关内容