- Create a folder at the root of your user home folder
(Example:
C:/Users/uname/) called.ssh. - Create the following files if they do not already
exist (paths begin from the root of your user home
folder):
.ssh/config.bash_profile.bashrc
Follow the steps in the section named "Generating a new SSH Key" found in the following documentation from GitHub: Generating a new SSH key and adding it to the ssh-agent
Add the following text to .ssh/config (.ssh should be found
in the root of your user home folder):
Host github.com
Hostname github.com
IdentityFile ~/.ssh/id_ed25519
First, ensure that following lines are added to .bash_profile,
which should be found in your root user home folder:
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrcNow, add the following text to .bashrc, which should be found
in your root user home folder:
# Start SSH Agent
#----------------------------
SSH_ENV="$HOME/.ssh/environment"
function run_ssh_env {
. "${SSH_ENV}" > /dev/null
}
function start_ssh_agent {
echo "Initializing new SSH agent..."
ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo "succeeded"
chmod 600 "${SSH_ENV}"
run_ssh_env;
ssh-add ~/.ssh/id_ed25519;
}
if [ -f "${SSH_ENV}" ]; then
run_ssh_env;
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_ssh_agent;
}
else
start_ssh_agent;
fi
I have been using this script for a very long time, thank you for the script @bsara, this script had been working fine until recently something changed in git for windows i guess? The ssh-agent was being spawned every single time a new bash window was opened.
My message has nothing to take away from your inputs. I did some googling, found this article and the code snippet from the article stopped the ssh-agent from being spawned every time a new bash window was launched. I am posting both the link to the article and the code snippet for future readers, cheers!
Instructions
.bashrc.bashrc, use the following.In the snippet below you can set the path to your key file in the if block like this
ssh-add ~/.ssh/id_ed25519where~/.ssh/id_ed25519is the path to your keyfile if you have a different location/name.