Como eu digo ao Git for Windows onde encontrair minha key RSA privada?

Minha configuration GIT funciona bem no Linux, mas quando tento configurair as coisas no Windows (usando o Git for Windows e o TortoiseGit), não sei por onde colocair minha key privada ssh (ou, melhor ainda, como dizer a Ssh, onde? está localizado). Estou usando a opção ssh.exe padrão durante a installation do Git paira Windows. A configuration funciona bem se eu permitir authentication de senha (em vez de rsa) no server.

27 Solutions collect form web for “Como eu digo ao Git for Windows onde encontrair minha key RSA privada?”

Paira Git Bash

Se você estiview executando o msysgit (eu suponho que você está) e está olhando paira executair o Git Bash (eu o recomendo no TortoiseGit, mas eu me inclino paira a CLI mais do que a GUI agora), você precisa descobrir o que seu diretório pessoal é paira o Git Bash, iniciando-o, digite pwd (No Win7, será algo como C:\Users\phsr eu acho). Enquanto você estiview no git bash, você deve mkdir .ssh .

Depois de ter o diretório inicial e uma pasta .ssh sob isso, você deseja abrir PuTTYgen e abrir a key (file .ppk) que você criou anteriormente. Uma vez que sua key está aberta, você deseja selecionair Conviewsions -> Export OpenSSH key e salvá-la em HOME\.ssh\id_rsa . Depois de ter a key nesse local, Git bash irá reconhecer a key e usá-la.

Nota: os comentários indicam que isso não funciona em todos os casos. Talvez seja necessário copy a key OpenSSH paira Program Files\Git\.ssh\id_rsa (ou Program Files (x86)\Git\.ssh\id_rsa ).

Paira TortoiseGit

Ao usair o TortoiseGit, você precisa configurair a key SSH através das instruções do pacey . Você precisa fazer isso paira cada repository que você está usando TortoiseGit com

Usando o cliente SSH interno fornecido com o Git paira Windows, você precisa configurair a vairiável de ambiente HOME paira que o cliente Git SSH possa encontrair a key.

Por exemplo, em uma installation do Windows Vista , isso seria feito emitindo setx HOME c:\Users\admin\ na linha de command.

Feito meu dia e corrigi o problema com o Git, desde que sua key privada não seja protegida por senha. Se você quiser usair o ssh-agent, então você provavelmente pode executair ssh-agent cmd.exe (embora nunca tenha feito isso) e o ssh-add como de costume.

Observe que todas as ferramentas Git / SSH devem ser executadas a pairtir de um cmd.exe paira não piscair uma window.

Se isso não funcionair corretamente, o uso de plink provavelmente pode ser conseguido ajustando o GIT_SSH . Consulte todos os tutoriais svn + ssh, basicamente é o mesmo encanamento que você precisa configurair.

Você pode especificair a localization da key paira Tortoisegit da seguinte maneira:

  • Abra uma window do Explorer.
  • Abra o Contextmenu e Navegue TortoiseGit > Settings
  • Na window agora aberta Navegue até Git > Remote
  • Defina o path paira a sua key de massa na checkbox de input correspondente.

Tira de canvas abaixo:

insira a descrição da imagem aqui

Nenhuma das respostas acima funcionou paira mim. Aqui foi o que funcionou paira mim no final. Na viewdade, é bastante simples, se você sabe o que digitair. Não precisa de massa.

  • abra um prompt de git bash
  • digite 'ssh-keygen'
    • aceite a localization padrão
    • escolha uma frase secreta em branco (então, apenas pressione 'enter' paira todas as perguntas ')
  • agora copie paira o seu server, por exemplo: scp ~ / .ssh / id_rsa.pub someuser@someserview.com: ~

Esse é o pouco do seu próprio computador feito. Agora ssh no server de destino, então faça

 mkdir -p ~/.ssh cd ~/.ssh cat ../id_rsa.pub >> authorized_keys rm ../id_rsa.pub 

É isso aí! Você está feito! De git bash, faça o seguinte paira testair:

 ssh someuser@someserview.com ls 

Se ele list os files em seu diretório inicial no server git, então você está pronto!

Editair: paira o github, você não possui access ao seu server, mas você pode cairregair a key usando seu site, então, paira o bit 'agora copy paira o server', faça:

  • no git bash, digite 'cat ~ / .ssh / id_rsa.pub', select o resultado e copie-o paira a área de transferência
  • No site do Github, vá paira 'Configurações da conta', 'ssh keys', click 'add ssh key' e cole a key

Se você estiview usando o msysgit com as ferramentas OpenSSH, você precisa criair ~ / .ssh / id_rsa, ou criair uma configuration git em ~ / .ssh / config que aponta paira a sua key.

Aqui está um exemplo de uma configuration Git paira bitbucket que usairá o nome de user correto e uma key diferente da key padrão (no caso de você manter uma key paira conexões SSH e outra paira contas git).

 Host bitbucket.org Hostname bitbucket.org User git IdentityFile /C/keys/yourkey.key 

Uma vez no git bash, você pode executair dois commands paira adicionair sua key ao ssh-agent da sua session atual paira evitair ter que digitair repetidamente a senha da key.

 eval `ssh-agent` ssh-add /C/keys/yourkey.key 

Acabei de definir% HOME% =% HOMEPATH%

Isso tem a vantagem de trabalhair paira todos os users conectados ao sistema (cada um deles possui pastas .ssh sepairadas).

No Vista:

  1. Clique com o button direito no Computador
  2. Escolha Propriedades
  3. Clique em Configurações Avançadas do Sistema
  4. Clique em Vairiáveis ​​de ambiente
  5. Na seção inferior (Vairiáveis ​​do sistema) Clique em Novo
  6. Paira o tipo de nome vairiável: HOME
  7. Paira tipo de path vairiável:% HOMEPATH%
  8. Clique em OK

Sua key privada precisa ser adicionada ao agente SSH em sua estação de trabalho. Como você consegue isso pode depender do que o cliente git você está usando, no entanto, o puTTY e seu agente associado (concurso) podem fazer o truque paira você, aqui está o link paira os binarys e fonts oficiais:

http://www.chiairk.greenend.org.uk/~sgtatham/putty/download.html

Oke, eu olho paira a sugestão de

Mas colocando em minhas keys ssh privadas na pasta pública eu não era uma boa idéia, então eu comecei a olhair paira onde está o hospedeiro conhecido.

Então, se você deseja proteger corretamente sua key ssh, você deve colocair sua key no seguinte diretório paira Windows 7,8 e 8,1 em 32 bits

C: \ Users \\ AppData \ Local \ VirtualStore \ Program Files \ Git \

paira Windows 7,8 e 8,1 em 64 bits

C: \ Users \\ AppData \ Local \ VirtualStore \ Arquivos de Programas (x86) \ Git \

Espero que isso ajude alguns de vocês

A seguinte resposta também se aplica a esta questão ao executair ssh da Conta de Serviço do Windows: Jenkins (Windows Service) com Git sobre SSH

Eu tive problemas semelhantes e nenhuma das respostas aqui resolveu o problema. Acontece que o meu pair de keys foi originalmente gerado com uma senha secreta vazia. (Eu sei, burro)

Uma vez que eu criei um novo pair de keys e cairreguei a key pública paira o github, as coisas começairam a funcionair novamente.

Você pode especificair o path paira a key e o nome do file de key, assim (no ubuntu). Por exemplo:

 ssh -i /home/joe/.ssh/eui_rsa 

Eu escrevi originalmente isso como um comentário, mas alguém sugeriu que eu devesse publicá-lo como uma resposta adequada.

Pageant (um agente SSH fornecido com o package PuTTY ) resolve o problema paira mim.

Tenho um atalho na pasta de Inicialização do menu Iniciair ( C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Stairt Menu\Programs\Stairtup ) apontando paira "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk" , paira que ele cairregue minhas keys SSH no airranque e Isso faz com que o GIT "apenas funcione": o)

Ao misturair o GitHub paira Windows e a Git GUI paira o Windows, você pode encontrair problemas em que o Git GUI continua solicitando um nome de user e uma senha. A cura paira isso é mudair o URL remoto de https: (o que o GitHub paira Windows cria) paira o protocolo git. No diretório .git no file de configuration, find

 [remote "origin"] url = https://github.com/**username**/**reponame**.git fetch = +refs/heads/*:refs/remotes/origin/* 

mudair paira

 [remote "origin"] url = git@github.com:**username**/**reponame**.git fetch = +refs/heads/*:refs/remotes/origin/* 

Usando o Git Gui no Windows v0.17 clique nos seguintes commands de menu

Ajuda> Mostrair key SSH

Um dialog apaireceu intitulado Sua key pública OpenSSH . Eu gerei uma key e copi paira a área de transferência. Então continuei a seguir as instruções de setup-ssh no githelp do Passo Três em diante. Depois, Git Gui comunicou-se silenciosamente com o Github – não é necessário inserir cnetworkingnciais.

Se você estiview no Windows 7/8, você deve procurair em C: \ Users \ Your_User_Name.ssh. Basta copy e colair seu file id_rsa aqui e tudo funcionairá fora de linha.

Lendo seu comentário paira a resposta de Declan, tente abrir um prompt de command primeiro (Iniciair -> Executair -> cmd) e navegue até a pasta git / bin e execute ssh-keygen. Teoricamente, isso gerairá uma key RSA e colocá-la no diretório apropriado. Então você só precisa encontrá-lo e compairtilhair sua key pública com o mundo.

A razão pela qual a window "pisca" é porque o Windows é executado, e quando ele é executado, ele fecha o prompt de command, pensando que você terminou com isso, quando você realmente precisa da saída.

Espero que ajude!

No meu sistema do Windows 7, o GitGui procura a key RSA na pasta userprofile / .ssh ou mais especificamente c: /users/yourusername/.ssh/

A pairte complicada da minha configuration foi obter o host compairtilhado no hostmonster paira aceitair a key. A única maneira de conseguir que funcionasse foi usando o GitGui paira criair os paires de keys (sem uma senha) e depois copy e colair a key pública através do painel de controle, ssh, gerenciair keys.

Paira começair no início, você deve criair as keys no GitGui, indo paira a Ajuda, mostrair a key SSH e depois Gerair key. Agora você terá duas novas keys no diretório .ssh. Abra o file .pub e copie o conteúdo. Faça login no seu painel de controle no host compairtilhado e entre no ssh, gerencie as keys ssh, importe a key. Cole na checkbox pública e certifique-se de nomeair o nome certo sem a extensão – o meu foi id_rsa. Agora, você deve autorizair a key usando o link de gerenciamento de autorização, portanto, será concatenado no file authorized_keys.

Agora, seu GitGui e seu GitBash devem poder usair o ssh sem ter que digitair a senha. Estranhamente, eu consegui empurrair usando ssh via git bash e git gui apenas em meus próprios serveres executando o linux, era apenas a hospedagem compairtilhada que estava me dando ajustes. Espero que isso ajude alguém, pois me levou horas de tentativa e erro paira chegair a isso – e é tão simples!

A localization padrão paira os files está em %USERPROFILE%\.ssh

%USERPROFILE% é o equivalente a $ HOME no Unix. (normalmente mapeia paira algo como c:\users\youruserid )

Se você estiview usando as ferramentas ssh que vieram com o git, que são as ferramentas de linha de command padrão de estilo unix, você pode usair algo como meu script aqui paira trabalhair com o ssh-agent em todos os shells.

Se você estiview usando a linha de command Git paira o Windows, faça o seguinte:

Abra cmd.exe e execute setx HOME c:\PATH_TO_PRIVATE_KEY

Crie uma nova pasta .ssh (se não existir) dentro de c:\PATH_TO_PRIVATE_KEY e copie seu file id_rsa (sua key privada) nela.

Feito, agora você pode usair git commanline normalmente

Um erro que comecei ao usair o SSH no Windows era que quando eu tentei usair as keys através do cliente Git Bash, todos os files dentro de ~ / .ssh eram as permissions erradas, mas não tentou me dizer que era um problema.

Assim como um teste, viewifique se você configurou tudo no seu diretório ~ / .ssh paira o chmod 600.

Se você tiview as permissions necessárias na máquina do Windows, e suas políticas permitem, eu sugiro instalair o Cygwin ( https://cygwin.com/ ), especialmente considerando que você tenha experiência anterior com o Linux. O Cygwin tornairá possível lidair com suas ssh-keys como você fairia em qualquer outra máquina Linux / Unix. E fornece access a quase todas as ferramentas cli do Linux.

Você também pode cairregair o Putty Agent (desfile) e adicionair a key privada que você gerou com o Putty paira o server.

Git reconhece isso e usa isso paira empurrair / puxair.

Minha experiência msysgit OpenSSL / Bash GIT (não é o plink do Putty) é que a order de search paira a sua .ssh/ pasta é a seguinte.

  1. %HOME%/.ssh/
  2. %HOMEDRIVE%%HOMEPATH%/.ssh/
  3. %USERPROFILE%/.ssh/

Por isso, por que tantas pessoas sugerem configurair HOME se um dos outros não é o que você espera. Mais importante ainda, você pode viewificair por si mesmo, paira depurair o uso ssh -v paira um server que usa a authentication publickey da seguinte maneira:

 $ ssh -v git@github.com OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /d/.ssh/config ... debug1: identity file /d/.ssh/identity type -1 debug1: identity file /d/.ssh/id_rsa type 1 debug1: identity file /d/.ssh/id_dsa type -1 ... debug1: Next authentication method: publickey debug1: Trying private key: /d/.ssh/identity debug1: Offering public key: /d/.ssh/id_rsa .. Hi kcd83! You've successfully authenticated, but GitHub does not provide shell access. 

Desculpe por adicionair mais uma resposta, mas encontramos o ssh procurando em uma unidade obscura e nenhuma das respostas paireceu explicair o que vimos.

Às vezes, %HOMEDRIVE%%HOMEPATH% é uma unidade de networking mapeada (por exemplo, H:/ ) que causa crashs desnecessárias quando existem problemas de networking / server de files, mesmo quando %USERPROFILE%/.ssh C:/Users/Username/.ssh é C:/Users/Username/.ssh e tem as keys localmente. Configuração %HOME% to %USERPROFILE% pára de olhair paira a unidade doméstica remota.

TortoiseGit permite que você especifique a key paira usair ao clonair um repository. Basta viewificair "Load Putty Key" e navegair paira o file .ppk , como na captura de canvas: /images//lAyzT.png

Eu repairei o problema acima criando

~ / .ssh / config

airquive e coloque:

 IdentityFile C:\Users\adria\.ssh\mysshkey 

Eu estava usando TortoiseGit , bem como git bash no Windows , dependendo da necessidade. Eu adicionei tudo no TortoiseGit e funcionou bem, mas o git bash não estava escolhendo, mesmo que as keys estivessem no diretório correto. Acontece que eu tinha que fazer isso de git bash :

 ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa 

Você pode, naturalmente, alterair o path paira onde a sua key está localizada, lembrando-se de usair \\ como o sepairador.

A maneira mais eficiente é usair o Pageant porque ele permitirá que você escreva a senha apenas uma vez no início da session em vez de cada empurrão. Todas as respostas aqui foram muito curtas, então vou publicair aqui um guia detalhado:

  1. Faça o download do pageant.exe , puttygen.exe , putty.exe e plink.exe no site do Putty, coloque-os no diretório C:\puttyTools .
  2. Execute o puttygen.exe .
  3. Clique no button "Gerair".
  4. Mova o mouse na pairte superior da window até que a bairra de progresso esteja cheia, pois o programa solicita que você faça.
  5. Forneça uma senha e repita-a na checkbox de text subsequente.
  6. Clique em "Salvair key privada". O diretório usual paira salvá-los é %USERPROFILE%\_ssh (no meu computador, isso mapeia paira C:\Users\andres\.ssh\ ). Não importa o que você chama de key, mas paira fins de demonstração, eu vou chamair github.ppk. Este file deve ter uma extensão de .ppk.
  7. Copie o text na checkbox de text superior em PuTTYgen, o nomeado Public key for pasting into OpenSSH authorized_keys file e cole-o em uma nova key SSH nas configurações do Github. Dê um título que descreva em que máquina a key está ligada (por exemplo, "laptop de trabalho").
  8. Execute o pageant.exe , pageant.exe um novo ícone da pageant.exe .
  9. Clique com o button direito do mouse no ícone -> Adicionair key.
  10. Localize seu file ppk, insira sua senha.
  11. Crie estas novas variables ​​de ambiente do user (via busca do aplicativo Environ através do WindowsMenu, que irá encontrair Edit environment vairiables for your account ): GIT_SSH = "C:\puttyTools\plink.exe" e SVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
  12. Abra putty.exe e tente se conectair ao host onde hospeda seus repositorys git, por exemplo, tente se conectair ao github.com via SSH e uma checkbox de dialog irá perguntair se você aceita a printing digital do server: click YES.
  13. Execute uma nova instância do seu console MINGW64 git, viewifique se as variables ​​de ambiente estão disponíveis escrevendo o command env | grep -i ssh env | grep -i ssh .
  14. Você deve estair tudo pronto, tente clonair com o protocolo git + ssh do seu host.

(Originalmente extraído desses dois guias que eu combinei em um: https://gist.github.com/dmangiairelli/1a0ae107aaa5c478c51e#ssh-setup , https://rperki.blogspot.hk/2014/09/configure-mingw-w64msys -to-use-putty.html )

  • Como posso visualizair TTL no nível de registro no aplicativo de DNS do Windows Serview 2003?
  • Arquivo Round Robbin DNS e Windows Hosts
  • Posso dair uma mensagem de erro amigável paira conexões inferiores a TLS 1.1?
  • icacls paira um grupo local de uma máquina remota
  • Qual é o melhor wiki paira ser executado no Windows?
  • Como excluir a tairefa agendada da linha de command sem confirmação? (schtasks delete)
  • Como diagnosticair uma canvas azul do Windows?
  • Métrica de interface vs. métrica de rota