Malloc
Malloc

Reputation: 16296

error: cannot run ssh: No such file or directory when trying to clone on windows

I am trying to clone a remote repository on Windows, but when I did this:

git clone [email protected]:organization/xxx.git

I got this error:

error: cannot run ssh: No such file or directory
fatal: unable to fork

Am I missing something?

Upvotes: 85

Views: 179864

Answers (9)

zundarz
zundarz

Reputation: 1594

If your local drive is a mapped drive and you get that error message, consider changing directory to folder on local "C:" drive.

I encounted same message when I was on x:\\sys\windows_mapped_drive.

Once I cd to local c:\foobar\clone_project drive my git clone command worked.

Upvotes: 1

pablorsk
pablorsk

Reputation: 4296

Check if you have installed ssh-client. This solves the problem on docker images, even when ssh keys are present.

On Debian images:

apt-get install openssh-client

On Alpine images:

apk add openssh-client

Upvotes: 78

hbceylan
hbceylan

Reputation: 1282

I got the same error on the Alpine container in the CI-CD pipeline. I have added openssh package and it worked.

RUN apk add --no-cache git openssh

Upvotes: 3

Dota2
Dota2

Reputation: 474

It so happened in my case that the new pair of ssh keys linked with my git account were not accessible.

I had to sudo chmod 777 ~/.ssh/id_rsa.* to resolve the issue.

Upvotes: 0

Abdul Muiz Khan
Abdul Muiz Khan

Reputation: 11

You can try these as well

ssh-add ~/.ssh/identity_file
chmod 400 ~/.ssh/identity_file

Upvotes: 0

Mahefa
Mahefa

Reputation: 418

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)

Upvotes: 8

user1556814
user1556814

Reputation: 583

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

Upvotes: 3

rivanov
rivanov

Reputation: 1274

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

Upvotes: 9

Mark
Mark

Reputation: 6093

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

Upvotes: 38

Related Questions