I am using Github for Windows on Windows 7. I have a bash script to add the ssh-key to my ssh-agent. I have setup a ssh remote repo.
add_key.sh
#!/bin/bash
cd ../ssh/
eval $(ssh-agent)
ssh-add id.rsa
cd ../htdocs/
Execute command-
./add_key.sh
It returns
Agent pid 5548
Identity added: id.rsa (id.rsa)
When I git push origin master, it fails. But when I manually cd in the ssh directory, and run the same ssh-related commands and cd back to my directory htdocs and git push to origin master, it works.
Why is this happening?
Login to your Github account. Go to Settings > SSH and GPG keys. Click button 'New SSH key', add Title to it and paste there content of your public key. Click 'Add SSH key'.
Your problem is that your script is running in its own shell session because you are running ./add_key.sh
.
This means that the variables set by eval $(ssh-agent)
are not living beyond that shell session so the parent session doesn't have them and cannot use the agent (also you might be spawning a new agent each time you run the script).
The fix for this is to run that "script" in the current session by dot-sourcing the script instead of running it as an external script.
That is you want to use . add_key.sh
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With