我使用了亚马逊AWS上的服务器,他们向我发送了一个公钥.pem文件,当我通过ssh登录时,我所要做的就是:
ssh -i key.pem user@server
我现在拥有一台自己的服务器,并且正在尝试弄清楚如何使用我的服务器执行此操作,以便我可以通过 ssh 自动向我的服务器发出命令。
我想我需要在我的服务器上生成此 key 并将其复制到我的客户端计算机。我如何生成这个 key ?
最佳答案
在您想要登录的客户端计算机上,运行ssh-keygen
。对于快速简便的按键,只需在所有问题上按 Enter 键即可。这将在 ~/.ssh 中创建 key 对。具体来说, ~/.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 文件。
就是这样!您应该从客户端到服务器进行无密码登录。如果您希望从服务器到客户端进行无密码登录,则必须在交换客户端和服务器的情况下重复此过程。
注释:
- 如果您的服务器上不存在 ~/.ssh 目录,则创建该目录的最佳方法是从服务器通过 ssh 连接到其他计算机(例如客户端)。这将确保它具有正确的权限。
- 如果您担心有人访问客户端,您可以使用密码保护 key (运行
ssh-keygen
时的提示之一),但随后您必须每次都输入该密码登录时。解决此问题的方法是使用 ssh-agent。
关于ssh - 如何生成无需密码即可登录服务器的 ssh key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170895/