My .bashrc file not executed on Git Bash startup (Windows 7)

后端 未结 3 2029
死守一世寂寞
死守一世寂寞 2020-12-13 07:27

This is what I did:

cd ~
touch .bashrc
notepad .bashrc

and the content of my .bashrc is (found on the web somewhere):

SSH_E         


        
相关标签:
3条回答
  • 2020-12-13 08:05

    The simplest mechanism on Windows is the one from here http://anterence.blogspot.co.uk/2012/01/ssh-agent-in-msysgit.html

    Modified to show key names other than 'id_rsa', the .bashrc file looks like this:

    #! /bin/bash 
    eval `ssh-agent -s` 
    ssh-add ~/.ssh/github_rsa
    ssh-add ~/.ssh/otherkey_rsa
    

    You are prompted for the passphrase for each key in turn, but only the first time after a machine start.

    0 讨论(0)
  • 2020-12-13 08:13

    Bingo! Something was obviously wrong with the way the ssh-agent is run in that .bashrc. I copied the one from here and it works a treat! Now I only have to enter my passphrase once when git bash starts up, and any subsequent push no longer need it.

    Here's the actual content of the script now:

    SSH_ENV=$HOME/.ssh/environment
    
    function start_agent {
         echo "Initialising new SSH agent..."
         /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
         echo succeeded
         chmod 600 ${SSH_ENV}
         . ${SSH_ENV} > /dev/null
         /usr/bin/ssh-add;
    }
    
    # Source SSH settings, if applicable
    
    if [ -f "${SSH_ENV}" ]; then
         . ${SSH_ENV} > /dev/null
         #ps ${SSH_AGENT_PID} doesn't work under cywgin
         ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
             start_agent;
         }
    else
         start_agent;
    fi
    
    0 讨论(0)
  • 2020-12-13 08:20

    Try this, works for me.

    SSH_ENV=$HOME/.ssh/environment
    
    function start_agent {
         echo "Initialising new SSH agent..."
         /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
         echo succeeded
         chmod 600 ${SSH_ENV}
         . ${SSH_ENV} > /dev/null
         /usr/bin/ssh-add;
    }
    
    # Source SSH settings, if applicable
    
    if [ -f "${SSH_ENV}" ]; then
         . ${SSH_ENV} > /dev/null
         #ps ${SSH_AGENT_PID} doesn't work under cywgin
         ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
             start_agent;
         }
    else
         start_agent;
    fi
    
    0 讨论(0)
提交回复
热议问题