繁体   English   中英

sh脚本不会将ssh密钥添加到ssh-agent(windows git bash)

[英]sh script doesn't add ssh key to ssh-agent (windows git bash)

我在Windows 7上使用Github for Windows。我有一个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 to origin master时,它可以工作。

为什么会这样?

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

这意味着由eval $(ssh-agent)设置的变量不会超出该shell会话,因此父会话没有它们,也无法使用代理(每次运行脚本时,您也可能会生成新的代理) )。

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

那是你想要使用的. add_key.sh . add_key.sh

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM