为啥我不能在 bash 脚本中使用 `source` ssh-agent 和 ssh-add?

Posted

技术标签:

【中文标题】为啥我不能在 bash 脚本中使用 `source` ssh-agent 和 ssh-add?【英文标题】:Why can't I `source` ssh-agent and ssh-add with in bash script?为什么我不能在 bash 脚本中使用 `source` ssh-agent 和 ssh-add? 【发布时间】:2021-10-27 02:55:18 【问题描述】:

当我尝试git push 时,我收到以下错误。

ERROR: Repository not found.
fatal: Could not read from remote repository.

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

我知道我应该在这里指定我自己的密钥,所以我在 bash 窗口中键入以下内容,它工作正常。

ssh-agent bash
ssh-add ~/.ssh/id_rsa_lrz
git push

但是,我想让事情变得简单,所以我有一个这样的 set_env.sh

ssh-agent bash
ssh-add ~/.ssh/id_rsa_lrz

然后我像这样在我的 bash 窗口中输入

. set_env.sh
git push

但是,我再次收到 ERROR: Repository not found. 错误,但为什么?

【问题讨论】:

【参考方案1】:

这是因为当你运行时:

. set_env.sh

您将在 ssh-agent bash 设置的 bash 会话中,其中 ssh-add ~/.ssh/id_rsa_lrz 尚未运行。

你需要的是放入 set_env.sh

eval "$(/usr/bin/ssh-agent)"
ssh-add ~/.ssh/id_rsa_lrz

【讨论】:

以上是关于为啥我不能在 bash 脚本中使用 `source` ssh-agent 和 ssh-add?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 bash 脚本中使用作业控制?

为啥我不能在 bash 脚本中使用作业控制?

bash 脚本中的源文件

为啥我不能从我的 python 脚本创建可执行文件?

在本地进行shell脚本中执行svn命令,为啥提示bash: svn: command not found?

linux下.bashrc为啥每次打开终端都要source一下才有效,如何才能永远生效?