ssh-add 到底做了什么?

Dun*_*yne 28 ssh

我最近重新安装了我的笔记本电脑,发现“git clone”不起作用。我一直收到Permission denied (publickey).错误。

该修复程序记录在 GitHub 的SSH 问题页面上:用于ssh-add告诉 SSH 我想用于在 GitHub 上进行身份验证的密钥。

我的问题是:在幕后,ssh-add实际上是做什么的?

一段时间以来,我一直想扩展我对 SSH 的理解,这似乎是一个很好的开始 :-)

Pet*_*lam 33

ssh-add将私钥身份(从您的~/.ssh目录中)添加到身份验证代理 ( ssh-agent),以便 ssh 代理可以为您处理身份验证,而您无需在终端输入密码。

  • `ssh` 确实使用了 `~/.ssh` 目录中的密钥,但如果密钥受密码保护,则必须在某个时候输入该密码。如果你使用 `ssh-agent` 和 `ssh-add`,你只需输入一次密码。否则,您每次使用 `ssh` 时都必须输入密码。请注意,如果密钥不受密码保护,您可以使用 `ssh` 而不会被要求输入密码。 (12认同)
  • 老实说,这让我困惑了一段时间。我认为 ssh 客户端总是使用你的 `~/.ssh` 目录中的密钥。某些发行版是否会自动执行等效于“ssh-add”的操作?也许这就是我困惑的原因? (3认同)