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

  • Middleman asks if I want to use compass when starting a new project
  • Bash script to extract filenames from git whatchanged
  • How do I maintain the version number of my bash script which is git source controlled?
  • Git Bash is displaying strange characters on Windows 7
  • Delete all local git branches
  • Git Pull command in shell script without having to enter password manually?
  • #!/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?

  • Untracked dirs on commit with pygit2
  • Deploying existing Django app on Heroku
  • Git branching from an older revision and rolling back the current branch
  • How to use git from emacs
  • Git difftool in read write mode
  • eclipse git confusions: How to merge & push?
  • One Solution collect form web for “sh script doesn't add ssh key to ssh-agent (windows git bash)”

    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.

    Git Baby is a git and github fan, let's start git clone.