我在Windows 7上使用Windows的Github。我有一个bash脚本,用于将ssh-key添加到我的ssh-agent中。我已经设置了一个ssh远程仓库。

add_key.sh

#!/bin/bash
cd ../ssh/
eval $(ssh-agent)
ssh-add id.rsa
cd ../htdocs/

执行命令
./add_key.sh

它返回
Agent pid 5548
Identity added: id.rsa (id.rsa)

当我git push origin master时,它失败了。
但是,当我手动在ssh目录中cd并运行与ssh相关的相同命令并将cd返回我的目录htdocs和git push到origin master时,它就可以工作。

为什么会这样呢?

最佳答案

您的问题是您的脚本在自己的Shell session 中运行,因为您正在运行./add_key.sh

这意味着eval $(ssh-agent)设置的变量不会在该Shell session 之外存在,因此父 session 没有它们,因此无法使用代理(同样,每次运行脚本时,您可能会生成一个新的代理)。

解决此问题的方法是通过点源脚本来在当前 session 中运行该“脚本”,而不是将其作为外部脚本运行。

那就是您要使用. add_key.sh

关于windows - sh脚本未将ssh key 添加到ssh-agent(Windows git bash),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29806328/

10-11 22:57
查看更多