'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 protected]", 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?

user1567909
fonte

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 .

VonC
fonte
É 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 protected]"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

cjaypierson
fonte
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

Dinesh Rajan
fonte
Ó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

pirgauthier
fonte
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

Bilton Tran
fonte
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
user3233126
fonte
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)

Vlad
fonte
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)

Nehal J Wani
fonte
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 "[email protected]"

isso deve funcionar.

Osama Saeed
fonte
2

Para janelas, você pode adicionar isto:

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

Você provavelmente deveria verificar isso . O Windows não tem esse comando integrado.

Benjamin Tan Wei Hao
fonte
0

Eu resolvi isso apenas adicionando ssh-keygenàs minhas variáveis ​​de ambiente.

Bartel De Brabandere
fonte
O que exatamente você fez?
Antony Hatchkins,
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

Zeeshan Khan
fonte
0

Na minha máquina, ssh-keygenestava disponível no PowerShell.

mikeLundquist
fonte