web-dev-qa-db-fra.com

"Impossible de générer ssh" lors de la connexion à Github, mais ssh -T [email protected] fonctionne?

J'ai du mal à faire fonctionner Github (+ Netbeans au travail). 

Je souhaite utiliser ssh avec git (sous Windows 7) pour, par exemple, valider ou cloner un projet, mais je continue à recevoir ce message d'erreur: 

$ git clone [email protected]:USER/PROJECTNAME.git
error: cannot spawn C:\Program Files (x86)\Git\bin\ssh.exe: No such file or directory
fatal: unable to fork

Note: Pour l'instant, ma variable d'environnement GIT_SSH pointe vers C:\Program Files (x86)\Git\bin\ssh.exe, mais j'ai aussi essayé C:\Program Files (x86)\Git\bin, en l'effaçant complètement, en pointant sur le dossier/plink de PuTTY et en pointant sur leurs exécutables, mais toujours le même message. 

Lorsque je teste la connexion, tout fonctionne bien: 

$ ssh -T [email protected]
Hi USER! You've successfully authenticated, but GitHub does not provide Shell access.

Qu'est-ce que je fais mal? Cela fait-il une différence si je fais le git init dans le répertoire en premier lieu?

MODIFIER

Cela n'a pas aidé:

mettre GIT_SSH à plink.exe et ajouter le chemin de plink à PATH

** EDIT 2 **

résultat de la commande avec GIT_TRACE=2

$ GIT_TRACE=2 git clone [email protected]:XXX/AffableBean
trace: built-in: git 'clone' '[email protected]:XXX/AffableBean'
Cloning into 'AffableBean'...
trace: run_command: 'Plink.exe' '-batch' '[email protected]' 'git-upload-pack '\''XXX/AffableBean'\'''
error: cannot spawn Plink.exe: No such file or directory
fatal: unable to fork
19
Patryk

C’est vraiment embarrassant, mais le vrai problème était avec mon pare-feu Comodo Firewall qui empêchait la connexion ssh d’être initialisée par git

Je peux sans aucun problème me connecter via ssh, par exemple. L'utilisation de la ligne de commande ou de PuTTY, mais d'une manière ou d'une autre Comodo était à l'origine de ce problème étrange.

Merci à tous pour votre soutien!

2
Patryk

Dans mon cas, régler GIT_SSH sur: 

GIT_SSH =/c/Program\Files\(x86) /Git/bin/ssh.exe

travaillé dans git bash.

9
schoetbi

Aucune des réponses jusqu'ici n'a fonctionné pour moi. Ce qui a fini par résoudre ce problème pour moi a été de supprimer les guillemets de ma variable GIT_SSH et de ne pas échapper à aucun caractère, pas de style de chemin MSYS (par exemple, /c/path\ to\ PuTTY/plink.exe). Il suffit d'entrer le chemin normalement, Git gère la citation.

set GIT_SSH=C:\path to PuTTY\plink.exe

C'est tout. Lorsque vous utilisez GIT_TRACE, vous pouvez voir que la variable est citée dans la commande résultante de la manière suivante:

  1. les doubles guillemets ajoutés changent la chaîne transmise à la commande et 

  2. le chemin est entouré de guillemets simples, les espaces sont donc corrects.

J'espère que ça aide quelqu'un.

5
cgchoffman

Avez-vous essayé d'installer ssh.exe sur un chemin ne contenant pas d'espaces? Et avez-vous testé la possibilité de citer des barres obliques inverses (\\)?

Vous pouvez également essayer GIT_TRACE=2 git clone <...>, il devrait vous montrer la commande et les paramètres que git tente de lancer pour se connecter.

5
user1338062

je pense qu'un chemin (ex: C:\Program Files (x86)\Git) ayant un espace vide ne peut donc pas être reconnu. 

pour le résoudre

  • faire un lien simple pour raccourcir le chemin 

    mklink/d "C:/Git" "C:\Fichiers de programme (x86)\Git"

cela fonctionne pour moi et aussi pour Jenkins (si vous l'utilisez avec le plugin Git)

  • définir GIT_SSH = C:\Git
  • Enfin, définissez PATH sur %GIT_SSH%\bin
2
biolinh

À moins que vous n'ayez une interaction antivirus obscure, le seul autre cas (à l'exception de numéro 313 auquel vous faites référence) où ce message d'erreur est visible est:

" erreur: impossible de générer git: aucun fichier ou répertoire de ce type "

si jamais vous obtenez cette erreur "error: cannot spawn git: No such file or directory" c'est un problème vraiment méchant.
Il m'a fallu une journée pour le retrouver, mais si vous avez plus de 500 balises dans un référentiel, il faut que certaines limites internes soient dépassées.
TLDR: si vous obtenez cette erreur, supprimez un tas de vos tags.

1
VonC

Sur mon installation Windows git bash par défaut de Windows 7, je devais configurer GIT_SSH pour:

"C:\\Program Files (x86)\\Git\\bin\\ssh.exe"

Il suffit donc de trouver le fichier ssh.exe fourni avec l’installation de Git et de mettre à jour ce qui précède avec le répertoire correct.

Pour que cela persiste à chaque fois que vous exécutez git bash, ajoutez simplement votre répertoire personnel dans le fichier .bashrc comme ceci:

export GIT_SSH="C:\\Program Files (x86)\\Git\\bin\\ssh.exe"
0
Mareker

Je recevais constamment l'erreur

erreur: impossible de générer "C:\Plink.exe": Aucun fichier ou répertoire de ce type fatal: incapable de fourcher

en faisant git Push et git pull. Je l'ai résolu en allant dans le fichier .git/config et en changeant

url = [email protected]:<USER>/<REPO>.git

à

url = https://github.com/<USER>/<REPO>

J'espère que cela t'aides!

0
andrewzm