- 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 && . ~/.bashrc
Now, 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
In my case the issue was in the system variables my HOME directory was not pointing to the correct User directory(where the ssh keys are). For Git Bash to be able to authenticate it needs to find your private key that is hosted in C:\Users\YOUR_UESR.ssh but if somehow this is pointing to the incorrect directory you'll end up in situation where you cannot connect.
What helped me to see the issue was running the below command
ssh -vT [email protected]
This command provides a verbose output with debug information that shows up resolved paths in your system. I've noticed the mismatched path that led me to the conclusion something is wrong with my system variables I opened them and saw the issue right away.