关于linux:如何设置公共密钥身份验证?

关于linux:如何设置公共密钥身份验证?

How do I setup Public-Key Authentication?

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


如果安装了SSH,则应该可以运行。

1
ssh-keygen

然后执行以下步骤,您将拥有两个文件id_rsaid_rsa.pub(第一个是您的私钥,第二个是您的公钥-复制到远程计算机的一个)

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

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

1
chmod 600 ~/.ssh/id_rsa*

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

1
chmod 600 ~/.ssh/authorized_keys

然后,当您执行ssh remote.machine时,它应该询问您密钥的密码,而不是远程计算机。

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

1
`ssh-agent`

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

然后添加您的密钥

1
ssh-add ~/.ssh/id_rsa

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


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

对于Linux以外的系统,这里有一些很好的ssh代理。

  • Windows-选美
  • OS X-SSH钥匙串

推荐阅读