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