'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.