62

如何为 SSH 设置公钥身份验证?

4

2 回答 2

105

如果您安装了 SSH,您应该能够运行..

ssh-keygen

然后完成这些步骤,您将拥有两个文件,id_rsa并且id_rsa.pub(第一个是您的私钥,第二个是您的公钥 - 您复制到远程机器的那个)

然后,连接到您要登录的远程计算机,在文件中~/.ssh/authorized_keys添加该文件的内容id_rsa.pub

哦,还有chmod 600所有id_rsa*文件(本地和远程),所以没有其他用户可以读取它们:

chmod 600 ~/.ssh/id_rsa*

同样,确保远程~/.ssh/authorized_keys文件chmod 600也是:

chmod 600 ~/.ssh/authorized_keys

然后,当你这样做时ssh remote.machine,它应该要求你输入密钥的密码,而不是远程机器。


为了更好地使用,您可以使用ssh-agent将解密的密钥保存在内存中 - 这意味着您不必每次都输入密钥对的密码。要启动代理,请运行(包括反引号,用于评估ssh-agent命令的输出)

`ssh-agent`

在某些发行版上,ssh-agent 会自动启动。如果你运行echo $SSH_AUTH_SOCK它并且它显示了一个路径(可能在 /tmp/ 中)它已经设置好了,所以你可以跳过前面的命令。

然后添加你的密钥,你做

ssh-add ~/.ssh/id_rsa

并输入您的密码。它会一直存储到您将其删除(使用ssh-add -D从代理中删除所有密钥的命令)

于 2008-08-12T18:13:37.127 回答
5

对于 Windows ,这是一个很好的介绍和指南

这里有一些适用于 linux 以外的系统的好 ssh 代理。

于 2008-08-11T02:01:00.040 回答