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

Why can't I `source` ssh-agent and ssh-add with in bash script?

当我尝试 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 window 中输入以下内容,它工作正常。

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

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

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

然后我这样输入 bash window

. set_env.sh
git push

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

这是因为当你 运行 :

. 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