Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 506
goelakash Avatar asked Apr 22 '15 18:04

goelakash


People also ask

How can I add an already generated SSH key to Git bash?

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'.


1 Answers

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.

like image 172
Etan Reisner Avatar answered Oct 25 '22 00:10

Etan Reisner