我需要在每次启动时重新运行 eval(ssh-agent) 和 ssh-add

Posted

技术标签:

【中文标题】我需要在每次启动时重新运行 eval(ssh-agent) 和 ssh-add【英文标题】:I need to re-run eval(ssh-agent) and ssh-add on every boot 【发布时间】:2021-11-27 22:47:18 【问题描述】:

我想知道是否可以得到一些帮助。我最近重新安装了我的操作系统,我遇到了一个我以前从未遇到过的奇怪问题。我在关注Github steps to add ssh agent

基本上每次登录都需要运行

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_personal

当我重新启动计算机时。

当我尝试运行 git clone X 时,我得到了

Cloning into 'X'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

但是在我运行上面的 2 个命令之后,我 cna 克隆就好了

注意:Gitlab 也存在问题。对不起,我应该是明确的

【问题讨论】:

查看***.com/q/18880024/7976758的所有答案在***.com/search?q=%5Bssh-agent%5D+every+login中找到 我个人在ssh-agent模式下使用gpg-agent。它将密钥永久存储在一个文件中,并允许配置它重新询问密码的频率;我的每 12 小时询问一次。我在 XWin 之前启动 gpg-agent,因此它可用于我的 X 会话中的所有终端和程序。 MacOS 在您登录时通过launchd 启动一个ssh-agent,然后再启动任何窗口,这样窗口就预先设置了ssh 环境变量。您可以获得可以做同样事情的 Linux 软件,但我从未使用过它。我使用的东西更像@phd 描述的方法。 【参考方案1】:

听起来你在 Linux 上运行,你的登录可能是“bash”。

如果是这样,我会考虑将这两行添加到您的~/.bashrc 登录文件的底部:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_personal

你也可以考虑试试这个:

How to Set ssh-agent to Run Automatically

【讨论】:

是的,我使用的是 Linux,但我在 zsh 上运行。我可能可以将这两行放在.zshrc 的底部(我会的),但我也不确定为什么会发生这种情况......我已经使用 linux 很长一段时间了,我已经没见过这样的 这与 Linux 没有太大关系,但与 GitHub 及其身份验证与正在运行的 ssh-agent 交互的方式有关。 对不起,我应该更清楚地说这个,但我在 gitlab 上遇到了同样的问题:/ 对于 bash,由于您只想在初始登录时执行此操作,您可以考虑使用 .bash_profile。我不确定 zsh 设置。另一个常见的技巧是首先检查是否有现成的代理可用,如果没有,则启动一个,但它有一些潜在的竞争,所以我自己不喜欢这个。 @IanQ: 1) 如果您没有注意到我的更新,请考虑:How to Set ssh-agent to Run Automatically。 2) phd 提出了一个有趣的建议,即使用 gpg-agent(GNUPrivacy Guard 的一部分)作为 ssh-agent 的替代品。您可以在这里了解更多信息:gnupg.org,3) 您可能已经知道,zsh 用户初始化文件是~.zshrc。 '希望有帮助;请发回你学到的东西!【参考方案2】:

添加我自己的答案:

我认为问题在于,当我制作第一个键时,我更改了默认名称。即我从

~/.ssh/id_id_edX -> ~/.ssh/id_personal

删除密钥并重新生成东西后,一切都解决了。为什么?身份证

【讨论】:

以上是关于我需要在每次启动时重新运行 eval(ssh-agent) 和 ssh-add的主要内容,如果未能解决你的问题,请参考以下文章

每次我需要进行 React 更改时如何避免重新启动服务器?

如何在启动 git bash 终端之前运行 linux 命令

Rails:每次使用控制台更改代码时重新启动服务器

Node.js 调试流程

在 Android 上测量长时间的运行时间(重新启动)

每次重新启动时都会重置 MAMP 配置设置