它的作用是什么ssh-agent以及它如何工作?

它的作用是什么ssh-agent以及它如何工作?

我最近进行了设置openssh,以便可以使用它git

在设置过程中(按照本文)我运行了以下命令:

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<name of key>

过了一段时间,我退出后重新登录,尝试使用时git push出现错误。解决此错误的方法是再次运行相同的命令。

请告诉我如何

  • 继续ssh-agent跑下去,这样我就不用开始新的了
  • 记住我添加的键,这样我就不必每次都添加它们

只是为了澄清一下,我使用 zsh,所以某些 bash 功能在我的 .zshrc 中不起作用。

答案1

它的作用是什么ssh-agent以及它如何工作?

解密密钥会ssh-agent安全地保存在内存和会话中。没有合理且安全的方法可以在重启/重新登录期间保存解密密钥。

好的,我怎样才能实现自动化?

自动ssh-agent启动

添加

[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"

到您的~/.bashrc或其他启动脚本(~/.zshrc)。

自动添加密钥

首次使用时,可以自动添加密钥,方法是添加

AddKeysToAgent yes

到你的~/.ssh/config

欲了解更多信息,请~/.ssh/config参阅man ssh_config

答案2

将其添加到~/.bashrc

这意味着当你在终端上打开另一个会话时,ssh-agent 将自动启动

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
fi

如果你需要将密钥添加到代理,还请添加此

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
 ssh-add ~/.ssh/<your private ssh key>
fi

相关内容