如何为另一个客户端配置 SSH 访问以进行密钥认证?

如何为另一个客户端配置 SSH 访问以进行密钥认证?

我知道如果我想配置 SSH 访问进行密钥认证,我需要使用以下命令:

ssh-keygen -b 2048 -t rsa -C “mypassphrase”

然后我需要将我电脑上创建的代码复制id_rsa.pub到服务器的 ~/.ssh/authorized_keys 文件中。我还需要设置某些文件夹和文件的权限。这将为我的电脑启用密钥身份验证。现在,我还想知道如何在另一台电脑上启用此类访问。我必须将创建的代码添加到id_rsa.pub同一个~/.ssh/authorized_keys文件中吗?

感谢您的帮助。

答案1

嗯...这不是一个好主意,为什么要使用密码作为注释(-C 选项)?

只需使用ssh-keygen -b 2048 -t rsa

默认情况下,您不需要设置任何权限。您可以以要在远程计算机上登录的用户身份创建密钥,然后:

cat ~/.ssh/id_rsa.pub | ssh user@server 'cat - >> ~/.ssh/authorized_keys'

从您的发布文件中获取密钥并将其添加到远程站点上的授权密钥中。

但是如果您尝试以 root 身份在禁用密码的远程计算机上进行密钥访问,那么您首先必须将 id_rsa.pub 复制到已启用通过 ssh 进行密码验证的用户帐户的计算机上,或者只需使用 USB 记忆棒,然后执行操作(以 root 身份从 id_rsa.pub 所在的文件夹进行操作)cat id_rsa.pub >> /root/.ssh/authorized keys

确保.ssh 文件夹存在。

编辑:创建密钥后最好使用 ssh-copy-id,正如@SvW 所建议的。我的方法也行得通,但在引入 ssh-copy-id 之前,这是手动操作的方法。

答案2

你可以将公钥用于任意数量的客户端。

使用以下命令可以轻松将文件添加到远程主机ssh-copy-id

ssh-copy-id -i /path/to/id_rsa.pub user@host

编辑:如果你的意思是你想从另一台计算机访问远程主机,你必须将私钥文件复制到这台机器(但绝不到您想要连接的远程机器)。

答案3

最好让他们创建自己的 rsa/dsa 密钥(或者您可以为他们创建并将密钥发送给他们),然后将 pub 密钥添加到 authorized_keys 文件中。即 cat new_rsa_id.pub >> authorized_keys。authorized keys 中的每一行都与一个 id_rsa 密钥相关。

此外,密码是可选的。除非公司安全政策要求,否则我总是觉得它很烦人。

如果我理解正确的话,您希望在另一台计算机上使用 auth 密钥来访问服务器。在这种情况下,只需将 id_rsa 密钥复制到您想要使用它的计算机上即可。无论密钥位于哪个系统(客户端),它都可以工作。

相关内容