我在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/