如何设置 SSH 的公钥认证?
如果您已安装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
来处理。 - Jan Blechta