我如何设置公钥authentication?
如何为SSH设置公钥authentication?
如果你安装了SSH,你应该可以运行..
ssh-keygen
然后通过这些步骤,您将有两个文件, id_rsa
和id_rsa.pub
(第一个是您的私钥,第二个是您的公钥 – 您复制到远程计算机的公钥)
然后,连接到你想要login的远程机器,到文件~/.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
把解密的密钥保存在内存中 – 这意味着你不必每次都input密钥对的密码。 要启动代理,请运行(包括评估ssh-agent
命令输出的back-tick引号)
`ssh-agent`
在一些发行版上,ssh-agent自动启动。 如果你运行echo $SSH_AUTH_SOCK
并且显示一个path(可能在/ tmp /),那么它已经被设置了,所以你可以跳过前面的命令。
然后添加你的钥匙,你做的
ssh-add ~/.ssh/id_rsa
并input您的密码。 它被存储直到你删除它(使用ssh-add -D
命令,它从代理中删除所有密钥)
对于Windows而言, 这是一个很好的介绍和指导
这里有一些非linux系统的ssh-agent。
- Windows – pageant
- OS X – SSHKeychain