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

有帮助吗?

解决方案

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

ssh-keygen

然后完成这些步骤,你将有两个文件, id_rsaid_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 命令,该命令从代理中删除所有密钥)

其他提示

对于窗户 是一个很好的介绍和指南

这里有一些适用于 Linux 以外系统的优秀 ssh 代理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top