goe*_*ash 6 windows git ssh bash push
我正在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/
Run Code Online (Sandbox Code Playgroud)
执行命令
./add_key.sh
Run Code Online (Sandbox Code Playgroud)
它返回
Agent pid 5548
Identity added: id.rsa (id.rsa)
Run Code Online (Sandbox Code Playgroud)
当我git push origin master时,它失败了。但是,当我手动在ssh目录中cd并运行与ssh相关的相同命令并将cd返回我的目录htdocs和git push到origin master时,它可以工作。
为什么会这样呢?
您的问题是,由于您正在运行,因此脚本正在其自己的Shell会话中运行./add_key.sh。
这意味着by设置的变量eval $(ssh-agent)不会存在于该shell会话之外,因此父会话没有它们并且不能使用代理(同样,您每次运行脚本时都可能会生成新的代理)。
解决此问题的方法是通过点源脚本来在当前会话中运行该“脚本”,而不是将其作为外部脚本运行。
那就是你要用的. add_key.sh。
| 归档时间: |
|
| 查看次数: |
1808 次 |
| 最近记录: |