【发布时间】:2010-09-05 15:43:54
【问题描述】:
如何为 SSH 设置公钥验证?
【问题讨论】:
标签: linux ssh private-key public-key
如何为 SSH 设置公钥验证?
【问题讨论】:
标签: linux ssh private-key public-key
【讨论】:
如果你安装了 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 命令,该命令会从代理中删除所有密钥)
【讨论】:
ssh-copy-id [-i identity] [user@]host处理。