error: cannot run ssh: No such file or directory when trying to clone on windows
Solution 1:
Check if you have installed ssh-client
. This solve the problem on docker machines, even when ssh keys are present:
apt-get install ssh-client
Solution 2:
You don't have ssh installed (or don't have it within your search path).
You can clone from github via http, too:
git clone http://github.com/organization/xxx
Solution 3:
Most likely your GIT_SSH_COMMAND
is referencing the incorrect public key.
Try:
export GIT_SSH_COMMAND="ssh -i /home/murphyslaw/.ssh/your-key.id_rsa
then
git clone [email protected]:organization/xxx.git
Solution 4:
I am aware that it is an old topic, but having this problem recently, I want to bring here what I resolve my issue.
You might have this error on these conditions :
- You use a URL like this :
[email protected]:organization/repo.git
- And you run a kind of command like this directly :
git clone [email protected]/xxxxx.git
whereas you don't have ssh client (or it is not present on path) - Or you have an ssh client installed (and
git clone xxx.git
work fine on direct command line) but when you run the same kind of command through a shell script file
Here, I assume that you don't want to change protocol ssh git@
to http://
([email protected]:organization/repo.git
-> http://github.com/organization/repo.git
), like my case, cause I needed the ssh
format.
So,
- If you do not have ssh client, first of all, you need to install it
- If you have this error only when you execute it through a script, then you need to set
GIT_SSH_COMMAND
variable with your public ssh key, in front of your git command, like this :
GIT_SSH_COMMAND="/usr/bin/ssh -i ~/.ssh/id_rsa" git pull
(Feel free to change it depending on your context)
Solution 5:
I had this issue right after my antivirus moved the cygwin ssh binary to virus vault, and restored it after.
Symptoms:
- SSH seems properly installed
- SSH can be run from command line without problem
Another option before reinstalling ssh in this particular case: check the ssh
command permissions
$ ls -al /usr/bin/ssh.exe
----rwxrwx+
$ chmod 770 /usr/bin/ssh.exe