web-dev-qa-db-fra.com

Utiliser git avec ssh-agent sous Windows

Je suis sous Windows. J'ai installé git et posh-git (quelques aides pour Windows PowerShell). Je peux ajouter des clés avec ssh-add et m'authentifier avec github et mon serveur Web. Je peux également utiliser git à partir de PowerShell pour interagir avec mes référentiels.

Mais il y a une chose que je ne peux pas faire: j'utilise git-plus pour l'éditeur Atom. Et je ne l'obtiens pas pour pousser à mon repo. Quel est mon problème?

17
LuMa

posh-git et git pour Windows 2.7 devrait inclure tout ce dont vous avez besoin pour configurer un ssh-agent . Une fois le module installé, vous pouvez démarrer l'agent à l'aide de quelque chose comme:

Import-Module ~\Documents\WindowsPowerShell\Modules\posh-git\posh-git
Set-Alias ssh-agent "$env:ProgramFiles\git\usr\bin\ssh-agent.exe"
Set-Alias ssh-add "$env:ProgramFiles\git\usr\bin\ssh-add.exe"
Start-SshAgent -Quiet

Vous devriez alors voir que la variable d'environnement SSH_AUTH_SOCK est définie:

C:\Code\Go\src\bosun.org\cmd\scollector [master]> gci env:SSH_AUTH_SOCK

Name                           Value
----                           -----
SSH_AUTH_SOCK                  /tmp/ssh-6ORcVQvRBZ2e/agent.11668

Ce que le paquetage git-plus atom devrait pouvoir utiliser lorsque vous exécutez des commandes. J'ai été en mesure d'utiliser Ctrl + Maj + H pour afficher le menu git dans Atom, sélectionner Push, puis Push vers un référentiel distant (ce n'est pas le cas, les erreurs ne sont pas affichées en cas d'échec, mais la nouvelle branche que j'ai poussée était là). . 

Ssh-agent doit être démarré AVANT d'ouvrir Atome pour que la variable d'environnement SSH_AUTH_SOCK soit définie. Si cela ne fonctionne toujours pas, vous pouvez tester ssh dans PowerShell pour vérifier qu'il peut se connecter sans mot de passe:

Set-Alias ssh "$env:ProgramFiles\git\usr\bin\ssh.exe"
ssh hostname
31
Greg Bray

Le problème est que git n'a pas pu trouver le fichier ssh_agent.exe qui a fourni les informations d'identification Les étapes que j'ai suivies sont décrites ci-dessous.

  1. A recherché le lecteur de fichier ssh_agent.exe 
  2. Ajout du chemin en tant que chemin d'environnement dans le fichier profile.example.ps1

$env:path += ";" + "C:\Program Files\Git\usr\bin"

0
Naveen Muralidharan