如何生成用于在没有密码的情况下登录服务器的ssh密钥

时间:2012-08-29 04:29:34

标签: ssh key ssh-keys

我在amazon AWS上使用了服务器,他们向我发送了一个公钥.pem文件,当我输入时,我所要做的就是:

ssh -i key.pem user@server

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

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

1 个答案:

答案 0 :(得分:3)

在您希望从登录的客户端计算机上,运行ssh-keygen。要快速轻松地输入密钥,只需输入所有问题即可。这将在〜/ .ssh中创建一个密钥对。具体来说,〜/ .ssh / id_rsa是你的私钥(保持这个安全),〜/ .ssh / id_rsa.pub是你的公钥(可以分发)。

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

就是这样!您应该从客户端到服务器进行无密码登录。如果要从服务器到客户端进行无密码登录,则必须重复交换客户端和服务器的过程。

注意:

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