'ssh-keygen' não é reconhecido como um comando interno ou externo


103

eu corro git push -u origin master

Ele me diz que "Permissão negada (chave pública) fatal: o terminal remoto desligou inesperadamente"

Então eu pesquisei na internet e descobri que tinha que gerar uma chave ssh para minha conta no GitHub. No entanto, ao fazer isso, quando tentei executar ssh-keygen -t rsa "email@youremail.com", ele simplesmente disse que ssh-keygen não é reconhecido. Tentei fazer mkdir C: \ ssh, mas não funcionou. Se ajudar, estou usando Ruby Rails e estou em um computador Windows. Alguém pode ajudar-me?

Respostas:


133

2012:
ssh-keygen.exefaz parte do msysgit :

 C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe

se o seu %PATH%incluir C:\path\to\msysgit1.7.11\bin\, você terá ssh-keygen.


Atualização 2015:
ssh-keygen.exefaz parte do Git para Windows , cujas versões incluem PortableGit-2.4.3.1-2nd-release-candidate-64-bit.7z

c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin\ssh-keygen.exe

Isso significa que %PATH%deve incluir c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(sem o ssh-keygen.exe)

Como expliquei antes , o Git para Windows em breve eliminará o msysgit.
Expliquei em " Por que se você baixar Git 2.0 da rede, sempre obtém um pacote de instalação 1.9.4? ", Como essa nova versão é baseada no projeto msys2 mais recente .


É seguro ter ssh-keygen.exeno PATH no Windows? Preciso remover sua localização depois disso?
— Verde,

@Green, na verdade, faz parte do Windows PATHapenas durante sua sessão com git, já que você está iniciando uma sessão especial do DOS com git-cmd.bat: github.com/msysgit/msysgit/blob/master/git-cmd.bat . Ele irá completar o PATHe definir HOME.
— VonC

Agudamente, o caminho deve ser sem ssh-keygen.exe. Quer dizer, só funciona assim para mim.
— alexander

1
@alexander: Eu concordo e editei a resposta para tornar isso mais visível.
— VonC 01 de

7
para mim, o caminho eraC:\Program Files (x86)\Git\usr\bin
— rupinderjeet

65

Acabei de ter esse problema e pensei em compartilhar o que considerava uma maneira mais fácil de contornar isso.

Abra git-bash e execute o mesmo comando com a adição de -C, já que você está comentando em seu endereço de e-mail: ssh-keygen -t rsa -C "email@youremail.com"command. É isso aí.

O git-bash deve ter sido instalado quando você instalou o git. Se você não conseguir encontrar, verifique C: \ Arquivos de programas \ Git \ Git Bash

A primeira vez que fiz isso, não foi possível criar a pasta .ssh para mim, então tive que abrir um prompt de comando padrão e mkdir C: \ Usuários \ seunomedeusuario \ .ssh


15
+1 por não sugerir a instalação de outro pacote de software
— Chip McCormick

2
+1 esta é uma solução melhor porque não precisa de outra instalação
— guoleii

Minha chave não foi salva na .sshpasta. Ele foi salvo no mesmo diretório que Git Bashexiste.
— Ahmad Behzadi

51

Segui abaixo no windows (com Git para Windows instalado)

  1. Execute o "Git Gui" (Iniciar -> Git -> Git Gui)
  2. Clique em Ajuda e em Mostrar chave SSH
  3. Clique em Gerar chave se ainda não tiver uma

Nota: - isso cria os arquivos-chave na pasta de seu perfil pessoal C: \ Usuários \ YourUserID \ .ssh \

insira a descrição da imagem aqui


Ótima resposta - uma ótima maneira fácil de criar uma nova chave SSH - TY :)
— gav_aus_web

9

Eu encontrei uma solução fácil para corrigir isso:

No prompt de comando, vá para o diretório git \ bin e execute seus comandos a partir daqui


6
No meu sistema, Windows 10, ssh-keygen.exe foi encontrado em 'git \ usr \ bin'.
— Tarabass

9

Não há necessidade de adicionar nada às variáveis ​​ambientais! Apenas abra o git bash e execute o comando ssh-keygen lá.

Link para baixar git bash aqui


8

Se você instalou o Git e está instalado em C: \ Arquivos de programas, siga as instruções abaixo

  1. Vá para "C: \ Arquivos de programas \ Git"
  2. Execute git-bash.exe, isso abre uma nova janela
  3. Na nova janela do bash, execute "ssh-keygen -t rsa -C" "
  4. Ele solicita o arquivo no qual salvar a chave, não insira nenhum valor - apenas pressione Enter
  5. O mesmo para a frase secreta (duas vezes), basta pressionar enter
  6. id_rsa e id_rsa.pub serão gerados em sua pasta pessoal em .ssh

4

Basta ir para heroku.bat e adicionar:

@SET PATH="D:\Program Files (x86)\Git\bin";%PATH% depois de @SET PATH=%HEROKU_RUBY%;%PATH%

no meu caso, está em D: \ Program Files (x86) \ Git \ bin, mude para o caminho em que você instalou o Git. (acabei de deixar meu caminho para que fique mais claro como escrever isso)


3

Acho que você pode adicionar a localização do arquivo ssh-keygen.exe na variável de ambiente PATH. Siga os passos: Vá para Meu Computador-> Clique com o botão direito-> Propriedades-> Configurações Avançadas do Sistema-> Clique em Variáveis ​​Ambientais. Agora clique em PATH e em EDIT. No campo de valor da variável, vá até o final e anexe '; C: \ path \ to \ msysgit1.7.11 \ bin \ ssh-keygen.exe' (sem aspas)


3

não faça nada, apenas digite no seu prompt de comando

C:\> sh

então você ficou assim

sh-4.4$ 
# type here 
ssh-4.4$ ssh-keygen -t rsa -b 4096 -C "example@example.com"

isso deve funcionar.


2

Para janelas, você pode adicionar isto:

SET PATH="C:\Program Files\Git\usr\bin";%PATH%



0

para quem não escolhe a opção BASH AQUI. digite sh em cmd, então eles devem ter ssh-keygen.exe acessível


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.