3

我在亚马逊 AWS 上使用了服务器,它们向我发送了一个公钥 .pem 文件,当我 ssh 进入时,我所要做的就是:

ssh -i key.pem user@server

我现在有自己的服务器,并试图弄清楚如何使用我的服务器执行此操作,以便我可以通过 ssh 自动向我的服务器发送命令。

我想我需要在我的服务器上生成这个密钥并将它复制到我的客户端机器上。如何生成此密钥?

4

1 回答 1

5

在您希望登录的客户端计算机上运行ssh-keygen. 要获得快速简便的密钥,只需在所有问题上按 Enter。这将在 ~/.ssh 中创建一个密钥对。具体来说, ~/.ssh/id_rsa 是您的私钥(请妥善保管),而 ~/.ssh/id_rsa.pub 是您的公钥(可以分发)。

将您的公钥 (~/.ssh/id_rsa.pub) 复制到您希望登录的服务器(例如scp ~/.ssh/id_rsa.pub me@myserver:。在服务器上,运行cat id_rsa.pub >> .ssh/authorized_keys。要确保它具有正确的权限,您可以运行chmod 644 ~/.ssh/authorized_keys。此外,您可以现在删除您复制的 id_rsa.pub 文件。

而已!您应该有从客户端到服务器的无密码登录。如果您想要从服务器到客户端的无密码登录,则必须在交换客户端和服务器的情况下重复该过程。

笔记:

  1. 如果 ~/.ssh 目录在您的服务器上不存在,创建它的最佳方法是从服务器 ssh 到其他机器(例如客户端)。这将确保它具有正确的权限。
  2. 如果您对某人访问客户端感到偏执,您可以密码保护密钥(运行时的提示之一ssh-keygen),但是每次登录时您都必须输入该密码。解决此问题的方法是使用ssh 代理。
于 2012-08-29T05:27:42.970 回答