AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 194567
Accepted
binaryorganic
binaryorganic
Asked: 2010-10-26 08:45:39 +0800 CST2010-10-26 08:45:39 +0800 CST 2010-10-26 08:45:39 +0800 CST

Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

  • 772

Minha configuração do Git funciona bem no Linux, mas quando tento configurar as coisas no Windows (usando Git for Windows e TortoiseGit ), não sei onde colocar minha chave SSH privada (ou, melhor ainda, como saber sshonde está localizado). Estou usando a opção ssh.exe padrão durante a instalação do Git para Windows. A configuração funciona bem se eu permitir autenticação de senha (em vez de RSA) no servidor.

windows ssh rsa git private-key
  • 30 30 respostas
  • 1076523 Views

30 respostas

  • Voted
  1. Best Answer
    Dan McClain
    2010-11-06T09:18:19+08:002010-11-06T09:18:19+08:00

    Para Git Bash

    Se você estiver executando o msysgit (suponho que esteja) e desejando executar o Git Bash (recomendo-o sobre o TortoiseGit, mas agora me apóio na CLI mais do que na GUI), você precisa descobrir qual é o seu diretório inicial para o Git Bash iniciando-o e digite pwd(no Windows 7, será algo como C:\Users\phsreu acho). Enquanto estiver no Git Bash, você deve mkdir .ssh.

    Depois de ter o diretório inicial e uma .sshpasta sob ele, você deseja abrir o PuTTYgen e abrir a chave (arquivo .ppk) que você criou anteriormente. Quando sua chave estiver aberta, você deseja selecioná Conversions -> Export OpenSSH key-la e salvá-la em HOME\.ssh\id_rsa. Depois que você tiver a chave nesse local, o Git Bash reconhecerá a chave e a usará.

    Nota: Os comentários indicam que isso não funciona em todos os casos. Pode ser necessário copiar a chave OpenSSH para Program Files\Git\.ssh\id_rsa(ou Program Files (x86)\Git\.ssh\id_rsa).

    Para TortoiseGit

    Ao usar o TortoiseGit, você precisa definir a chave SSH através das instruções do pacey . Você precisa fazer isso para cada repositório com o qual está usando o TortoiseGit.

    • 521
  2. Oct
    2010-11-06T10:24:53+08:002010-11-06T10:24:53+08:00

    Usando o cliente SSH integrado fornecido com o Git para Windows, você precisa configurar a variável de ambiente HOME para que o cliente Git SSH possa encontrar a chave.

    Por exemplo, em uma instalação do Windows Vista , isso seria feito emitindo setx HOME c:\Users\admin\na linha de comando.

    Isso fez meu dia e corrigiu o problema com o Git, desde que sua chave privada não seja protegida por senha. Se você quiser usar o ssh-agent, provavelmente poderá executar o ssh-agent cmd.exe (embora eu nunca tenha feito isso) e o ssh-add como de costume.

    Observe que todas as ferramentas Git/SSH devem ser executadas a partir de um cmd.exe para não piscar uma janela.

    Se isso não funcionar corretamente, o uso de plink provavelmente pode ser alcançado ajustando GIT_SSH . Consulte todos os tutoriais de SVN + ssh; este é basicamente o mesmo encanamento que você precisa configurar.

    • 115
  3. pacey
    2010-11-06T06:07:17+08:002010-11-06T06:07:17+08:00

    Você pode especificar o local da chave para o TortoiseGit da seguinte maneira:

    • Abra uma janela do Explorer.
    • Abra o menu de contexto e navegue TortoiseGit → Configurações
    • Na janela agora aberta, navegue até Git → Remote
    • Defina o caminho para sua chave PuTTY na caixa de entrada correspondente.

    Uma captura de tela está abaixo:

    Insira a descrição da imagem aqui

    • 62
  4. Hugh Perkins
    2012-04-25T17:32:58+08:002012-04-25T17:32:58+08:00

    Nenhuma das respostas anteriores funcionou para mim. Aqui foi o que funcionou para mim no final. Na verdade, é bastante simples, se você souber o que digitar. Não precisa de PuTTY.

    • Abra um prompt do Git Bash
    • Digite 'ssh-keygen'
      • Aceite o local padrão
      • Escolha uma senha em branco (apenas pressione 'enter' para todas as perguntas')
    • Agora copie a chave pública para o seu servidor, por exemplo: scp ~/.ssh/id_rsa.pub [email protected]:~

    Essa é a parte em seu próprio computador feito. Agora sshno servidor de destino, então faça

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

    É isso! Você Terminou! No Git Bash, faça o seguinte para testar:

    ssh [email protected] ls
    

    Se ele listar os arquivos em seu diretório inicial no servidor Git, e pronto!

    Para o GitHub, você não tem acesso shell ao servidor deles, mas pode fazer upload da chave usando o site deles, então para o bit 'agora copie para o seu servidor', faça:

    • No Git Bash, digite 'cat ~/.ssh/id_rsa.pub', selecione o resultado e copie-o para a área de transferência.
    • No site do GitHub, vá para 'Configurações da conta', 'Chaves SSH e GPG', clique em 'Nova chave SSH' e cole a chave.
    • 56
  5. GregB
    2013-04-11T22:34:29+08:002013-04-11T22:34:29+08:00

    Se você estiver usando msysgit com as ferramentas OpenSSH, precisará criar ~/.ssh/id_rsaou criar uma configuração do Git na ~/.ssh/configqual aponte para sua chave.

    Aqui está um exemplo de configuração do Git para Bitbucket que usará o nome de usuário correto e uma chave diferente da chave padrão (caso você mantenha uma chave para conexões SSH e outra para contas Git).

    ~/.ssh/config :

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

    Uma vez no Git Bash, você pode executar dois comandos para adicionar sua chave ao agente ssh da sua sessão atual para evitar ter que digitar repetidamente a senha da chave.

    eval `ssh-agent`
    ssh-add /C/keys/yourkey.key
    
    • 53
  6. Jono
    2012-10-12T17:26:17+08:002012-10-12T17:26:17+08:00

    Acabei de definir %HOME%=%HOMEPATH%

    Isso tem a vantagem de funcionar para todos os usuários logados no sistema (cada um deles recebe pastas .ssh separadas).

    Na Vista:

    1. Clique com o botão direito do mouse em Computador
    2. Escolha Propriedades
    3. Clique em Configurações avançadas do sistema
    4. Clique em Variáveis ​​de Ambiente
    5. Na seção inferior (Variáveis ​​do Sistema) Clique em Novo
    6. Para tipo de nome de variável: HOME
    7. Para o tipo de caminho variável: %HOMEPATH%
    8. Clique OK
    • 17
  7. oglop
    2017-11-03T07:27:47+08:002017-11-03T07:27:47+08:00

    In my case I was using Git for Windows in the Docker container windowsservercore.

    My Git was installed by Chocolatey to C:\Program Files\Git.

    I had to update the file C:\Program Files\Git\etc\ssh\ssh_config with this:

    Host example.com
       Identityfile ~/.ssh/id_rsa
    

    Then I was could use key from C:\Users\<user>\.ssh\id_rsa

    If you are using Git for windows together with OpenSSH for Windows. Git is still using its own ssh.

    Plus if you plan using ssh-keyscan host.com > known_hosts from OpenSSH, be careful because piping output from stdout of keyscan (on Windows) changes encoding to UCS-2, but OpenSSH can read only UTF-8! So make sure to change the known_hosts file encoding.

    • 11
  8. Declan Shanaghy
    2010-10-26T09:38:09+08:002010-10-26T09:38:09+08:00

    Sua chave privada precisa ser adicionada ao agente SSH em sua estação de trabalho. Como você consegue isso pode depender de qual cliente git você está usando, no entanto, o puTTY e seu agente associado (pageant) podem fazer o truque para você, aqui está o link para os binários e fontes oficiais:

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

    • 7
  9. IDisposable
    2014-09-05T14:34:49+08:002014-09-05T14:34:49+08:00

    Ao misturar o GitHub para Windows e o Git GUI para Windows, você pode encontrar problemas em que o Git GUI continua solicitando um nome de usuário e uma senha. A cura para isso é alterar a URL remota https:(que é o que o GitHub para Windows cria) para o protocolo Git. No .gitdiretório do arquivo de configuração, localize:

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

    Altere para:

    [remote "origin"]
        url = [email protected]:**username**/**reponame**.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    
    • 5
  10. knocte
    2017-05-16T02:57:02+08:002017-05-16T02:57:02+08:00

    The most efficient way is using Pageant because it will let you write the passphrase only once at the beginning of the session instead of every push. All answers here were too short, so I'll post a detailed guide here:

    1. Download pageant.exe, puttygen.exe, putty.exe and plink.exe from PuTTY's website. Place them in C:\puttyTools directory.
    2. Run puttygen.exe.
    3. Click button Generate.
    4. Wiggle the mouse around in the top part of the window until the progress bar is full, as the program asks you to do.
    5. Provide a passphrase, and repeat it in the subsequent textbox.
    6. Click "Save private key". The usual directory to save these in is %USERPROFILE%\.ssh (in my computer this maps to C:\Users\andres\.ssh\). It doesn't matter what you call the key, but for demonstration purposes, I'm going to call it github.ppk. This file should have an extension of .ppk.
    7. Copy the text in the top text box in PuTTYgen, the one labeled Public key for pasting into OpenSSH authorized_keys file and paste it into a new SSH key in GitHub's settings. Give it a title that describes what machine the key is on (e.g. "Work laptop").
    8. Run pageant.exe, a new systray icon will appear.
    9. Right click on the icon -> Add key.
    10. Locate your ppk file, enter your passphrase.
    11. Create these new user environment variables (via looking for application Environ through WindowsMenu which will find Edit environment variables for your account): GIT_SSH = "C:\puttyTools\plink.exe" and SVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
    12. Open putty.exe and try to connect to the host where you host your Git repositories. For example, try to connect to github.com via SSH, and a dialog will ask you if you accept the fingerprint of the server: click on YES.
    13. Run a new instance of your MINGW64 Git console, and verify that the environment variables are there by writing the command env | grep -i ssh.
    14. You should be all set. Try to clone with the Git + SSH protocol from your host.

    (Originally extracted from these two guides which I combined in one: How to setup Git for Windows and Configure MinGW-W64+MSYS to use PuTTY Plink/Pageant.)

    • 5

relate perguntas

  • O Vanilla Powershell é um idioma suficiente para administradores do Windows e do servidor de banco de dados?

  • Executando um .exe de um arquivo .asp usando wscipt no Windows Server 2003

  • Melhor backup de ambiente misto (OS X + Windows)? [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Como você reinicia o php-fpm?

    • 18 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Resolver o nome do host do endereço IP

    • 8 respostas
  • Marko Smith

    Como posso classificar a saída du -h por tamanho

    • 30 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    binaryorganic Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada? 2010-10-26 08:45:39 +0800 CST
  • Martin Hope
    tobym O que exatamente significam as cores nas barras de status htop? 2010-09-14 12:22:43 +0800 CST
  • Martin Hope
    MikeN No Nginx, como posso reescrever todas as solicitações http para https mantendo o subdomínio? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 Qual é a diferença entre colchetes duplos e simples no bash? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt Como funciona a sub-rede IPv4? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve