2016-01-06 12 views
10

Sono su Windows. Ho installato git e posh-git (alcuni helper per Windows PowerShell). Posso aggiungere chiavi con ssh-add e posso autenticarmi con github e il mio server web. Posso anche usare git da PowerShell per interagire con i miei repository.Utilizzo di git con ssh-agent su Windows

Ma c'è una cosa che non posso fare: io uso git-plus per l'editor di Atom. E non riesco a spingere al mio repo. Qual è il mio problema?

+0

Vedere http://haacked.com/archive/2011/12/19/get- git-for-windows.aspx/per i dettagli su come far funzionare l'agente ssh in posh-git –

risposta

14

posh-git e git for windows 2.7 dovrebbero includere tutto ciò che è necessario per impostare uno ssh-agent. Una volta che avete il modulo installato è possibile avviare l'agente utilizzando qualcosa di simile:

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 

È quindi dovrebbe vedere la variabile d'ambiente SSH_AUTH_SOCK è impostato:

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

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

Quale il pacchetto atomo di git-plus dovrebbe essere in grado da usare quando si eseguono i comandi. Sono stato in grado di usare Ctrl + Shift + H per far apparire il menu git in atom, selezionare push, e quindi premere su un repository remoto (non visualizza errori se fallisce, ma il nuovo ramo che ho spinto era lì) .

L'agente ssh deve essere avviato PRIMA di aprire atom in modo che sia impostata la variabile ambientale SSH_AUTH_SOCK. Se ancora non funziona, prova a ssh in PowerShell per verificare che possa connettersi senza password:

Set-Alias ssh "$env:ProgramFiles\git\usr\bin\ssh.exe" 
ssh hostname 
+0

Sì, la variabile SSH_AUTH_SOCK è impostata. Inoltre, la connessione senza una chiave non protetta ha funzionato da Atom e git-plus. L'agente è in esecuzione, le identità vengono importate. Posso stabilire una connessione con ssh, ma git-plus non funzionerà con le chiavi protette. – LuMa

+0

cosa intendi per chiavi protette? –

+0

Chiavi protette da una passphrase. Ad esempio, creo una chiave seguendo i documenti di GitHub: https://help.github.com/articles/generating-ssh-keys/ Creazione della chiave (id_rsa), proteggendola con una passphrase e aggiungendola all'agente ssh. Poi lo aggiungo a GitHub e al mio webserver. Ora posso usare PowerShell, cd nel mio progetto locale e push/pull senza inserire la passphrase della chiave. Funziona anche usando ssh per connettersi al mio server web. Tuttavia, git-plus non funzionerà. Solo se cancello la passphrase dalla mia chiave (usando 'ssh-keygen -p') git-plus farà il suo lavoro. Quindi perché git-plus non usa ssh-agent? – LuMa