如何设置公钥认证?

问题描述:

如何为SSH设置公钥认证?如何设置公钥认证?

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

ssh-keygen 

然后经过的步骤,你将有两个文件,id_rsaid_rsa.pub(第一个是您的私钥,第二个是您的公钥 - 您复制到远程机器的公钥s)

然后,连接到您要登录的远程机器,将文件~/.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持有解密的密钥存储器中 - 这意味着你不必键入您的密钥对的密码,每一次。要启动代理,运行(包括背面蜱报价,这EVAL的ssh-agent命令的输出)

`ssh-agent` 

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

然后添加你的钥匙,你做

ssh-add ~/.ssh/id_rsa 

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

+4

如果您必须创建.ssh文件夹,请不要将其设置为像我一样的600,否则您将会遇到不好的时间。请将其设置为700. :-) – 2014-02-21 14:04:17

对于windows this是一个很好的介绍和指导

这里有一些很好的ssh-剂Linux以外的系统。