Em uma instalação intocada do Windows 7 Enterprise, de outra forma:
- Instale o PuTTY 0.62
- Criar par de chaves públicas / privadas com puttygen.exe
- Adicione chave pública para colar no OpenSSH allowed_keys na conta do github
- Adicionar chave privada ao concurso
- Instale o msysgit 1.7.8 com as seguintes opções:
- Use o Git no prompt de comando do Windows
- Use Plink (Tortoise) apontado para corrigir plink.exe
- Verifique se a impressão digital do github foi adicionada ao know_hosts conectando-se ao github.com no PuTTY e aceitando a impressão digital
Edite
~/.ssh/config
para ler:Host github.com User git Hostname github.com PreferredAuthentications publickey IdentityFile ~\.ssh\github.ppk
ssh -vvvT [email protected]
dá: http://pastebin.com/Tu3Fc6nJ . Observe que estou sendo solicitada a frase secreta, apesar de ter sido carregada com sucesso no concurso.
Eu tentei: chmod 700 ~/.ssh; chmod 600 ~/.ssh/*
de dentro do Git Bash, mas não houve efeito conforme verificado por ls -l
.
Devo observar que eu tinha essa configuração exata trabalhando em uma instalação anterior do Windows 7. Tudo é idêntico, tanto quanto eu posso dizer.
O que funciona é gerar chaves no Git Bash. No entanto, não posso adicionar essas chaves ao concurso, o que é uma grande dor. De fato, parece que qualquer tentativa de usar chaves geradas pelo PuTTY não tem êxito.
Alguma idéia sobre o que está impedindo que isso funcione com base nos logs? Desde já, obrigado.
Respostas:
Você está confundindo dois programas totalmente separados: PuTTY e OpenSSH.
plink
e Pageant fazem parte do PuTTY. Ossh
comando faz parte do OpenSSH. Não está claro qual programa está sendo usado pelo Git; você precisa verificar a%GIT_SSH%
variável de ambiente para isso.Os programas usam protocolos de agente diferentes; O OpenSSH não pode usar o Pageant do PuTTY; ele tem o seu próprio
ssh-agent
(que infelizmente é um pouco complicado de usar no Windows).PuTTY e
plink
armazene as configurações da sessão no registro, editáveis na interface do PuTTY. Eles não usam nada~/.ssh/
; esse diretório é usado apenas pelo OpenSSH.Os formatos de chave privada usados pelo OpenSSH e PuTTY são diferentes; você não pode usar uma
.ppk
chave com o OpenSSH. Se você gerou a chave no PuTTYgen, precisará usar o comando "Exportar → OpenSSH".fonte
plink
não suporta o formato de chave OpenSSH. Se sua versão for, não éplink
você que está usando; é outra coisa.ssh
solicita a frase secreta apesar de ter sido carregada no Pageant". Você está confundindo os dois programas.~/.ssh/config
não é usado pelo PuTTY. No entanto, gostaria de reiterar que o GIT_SSH está apontado para plink; no entanto, se eu modificar o arquivo de configuração ssh para o OpenSSH, as alterações serão refletidas no Git Bash ao tentar conectar-se ao github. Basicamente, acredito que a variável de ambiente GIT_SSH está sendo ignorada e suponho que seja algo específico para o meu sistema operacional. Vou experimentar uma nova imagem amanhã.Reunimos um guia passo a passo para obter a configuração do Git para Windows usando o aplicativo Plink do PuTTY para autenticação SSH.
Siga abaixo:
Configuração
Instale o putty.zip, que está disponível na página de download do PuTTY ou você pode fazer o download individualmente.
PuTTY: putty.exe (ou por FTP )
O cliente SSH e Telnet em si.
Plink: plink.exe (ou por FTP )
Uma interface de linha de comando para os back-ends PuTTY.
Pageant: pageant.exe (ou por FTP )
Um agente de autenticação SSH para PuTTY, PSCP, PSFTP e Plink.
PuTTYgen: puttygen.exe (ou por FTP )
Um utilitário de geração de chaves RSA e DSA.
Gere chaves RSA e PPK
ssh-keygen
para gerar um par de chaves públicas / privadas RSA. Mais informações sobre como fazer isso podem ser encontradas no artigo oficial Gerando chaves SSH .~/.ssh/id_rsa
chave (privada) existente , via Conversions→ Import key.~/.ssh/id_rsa.ppk
.Agora você deve ter as seguintes chaves no seu
~/.ssh
diretório:id_rsa
: Chave RSA privada (OpenSSH)id_rsa.pub
: Chave pública (OpenSSH) RSAid_rsa.ppk
: Chave privada (PuTTY)Instale o Git para Windows .
Certifique-se de escolher o Plink.
Nota: Se você já instalou o Git, basta executar o instalador novamente e definir o Plink como seu aplicativo SSH padrão.
Defina os caminhos do seu ambiente.
Adicione as seguintes variáveis do sistema (se ainda não estiverem definidas):
GIT_HOME
:C:\Program Files\Git
GIT_SSH
:C:\Program Files (x86)\PuTTY\plink.exe
Anexe o diretório binário do Git ao caminho do sistema.
Path
:%Path%;%GIT_HOME%\bin
Abra o Pageant e carregue a chave ppk localizada em
~/.ssh/id_rsa.ppk
.Nota: Após o início do Pageant, você pode clicar no ícone na bandeja do sistema localizada na barra de tarefas, ao lado da hora, à direita.
Abra o Putty e conecte-se para testar sua conexão via SSH e adicione a chave do servidor como um host conhecido.
Exemplos de nomes de host:
[email protected]:22
(ou via ssh-agentssh -Tv [email protected]
)[email protected]:22
(ou via ssh-agentssh -Tv [email protected]
)Inicie o Git Bash.
Você deve poder empurrar e puxar do host remoto sem inserir uma senha a cada vez.
Atalho
Você pode colocar um atalho no diretório de inicialização para carregar automaticamente sua chave sempre que fizer login na sua conta do Windows.
Via Script de lote
Esta ideia foi inspirada por uma resposta a esta pergunta:
Via Windows Explorer
Navegue para o diretório de inicialização no Windows Explorer.
O
Startup/
diretório do usuário (preferencial) está localizado em:O
Startup/
diretório Todos os usuários está localizado em:Clique com o botão direito do mouse dentro da pasta e selecione New→Shortcut
Na caixa de diálogo Criar atalho , insira as seguintes informações.
"C:\Program Files (x86)\PuTTY\pageant.exe"
Pageant Autoload
Clique com o botão direito do mouse no novo atalho e escolha Propertiesno menu de contexto.
Modifique os seguintes campos na guia Atalho :
"%PROGRAMFILES(x86)%\PuTTY\pageant.exe" id_rsa.ppk
%USERPROFILE%\.ssh
Notas:
Se você estiver usando um sistema operacional Windows de 32 bits, use a
%PROGRAMFILES%
variável de ambiente em vez de%PROGRAMFILES(x86)%
.Se você colocou o atalho no diretório de inicialização Todos os usuários, verifique se o usuário atual possui uma
id_rsa.ppk
chave no~/.ssh
diretório ou a chave não será carregada automaticamente.Comentários finais
Lá está você. Na próxima vez que você fizer login no seu perfil do Windows, você será recebido com um prompt do Pageant para inserir a senha da sua chave. Se você não definiu uma senha para sua chave, ela deverá ser carregada automaticamente sem aviso prévio.
Se você não tiver certeza se a chave carregada, visualiza as chaves atuais no Pageant, selecionando Exibir chaves no menu de contexto do Pageant na bandeja do sistema.
fonte
Em inglês simples
Puttygen pode construir diferentes chaves, o Github quer SSH1-RSA (?, Eu uso chaves ssh2 com Pageant no github)
Adiciona
Veja também este post sobre depuração de problemas de concurso com o Github
fonte