Cygwin não pode gerar keygen ssh

Cygwin não pode gerar keygen ssh

Quero gerar ssh-keygen via cygwin e há um problema ao inserir o caminho (ele não faz nada).

Aqui eu apenas pressionei enter e nada foi feito:

insira a descrição da imagem aqui

Responder1

Acho que você provavelmente não está executando o Cygwin ssh-keygen- o que which ssh-keygenmostra? O não Cygwin ssh-keygenno meu sistema (que foi instalado com PuTTY ou WinSCP, não me lembro qual) tem o mesmo comportamento, mas pode funcionar com:

ssh-keygen -t rsa -f /cygwin64/home/me/.ssh/id_rsa -N "passphrase"

Observação:

  1. Insira sua própria senha em vez de passphraseou -N ""uma senha vazia
  2. O caminho tem um formato estranho e tem raiz em C:. Eu tenho o cygwin instalado em C:\cygwin64, então as chaves estão no meu diretório inicial do Cygwin ( ~/.ssh) neste exemplo. Faça .sshprimeiro.

Ou você pode simplesmente instalar o Cygwin ssh-keygen. which ssh-keygendeveria então retornar /usr/bin/ssh-keygen.

Responder2

Use barras para caminhos cygwin. A barra invertida é "o caractere de escape" no Linux (e, portanto, também no cygwin)

$ cygpath --ajuda

cygpathajuda a converter caminhos + nomes de arquivos para/de/para o cygwin.

Dica: Use caminhos Linux no cygwin, use caminhos Windows no Windows.

Exemplo não testado:
$ cygpath -u "C:\Users\User/.shhs/id_rsa" /cygdrive/c/UsersUser/.shhs/id_rsa


O que você digitou no seu exemplo ( C:\Users\User/.shhs/id_rsa) é no final igual a C:UsersUser/.shhs/id_rsa- o que provavelmente não é o que você deseja.

O "caractere de escape" retira o significado especial do caractere seguinte, normalmente um caractere especial, deixando o caractere literalmente, como está, na entrada (há mais do que isso, mas o suficiente aqui).

Exemplo:

$ echo \$PATH=$PATH
$PATH=...
$

Responder3

Considere usarVersão do OpenSSH da Microsoft. Apenasdownload OpenSSH-Win32.zipou OpenSSH-Win64.zip, extraia ssh-keygen.exee use – sem necessidade de instalação, sem dependências (no Cygwin ou qualquer outra coisa).

Se você possui o Windows 10 versão 1803 ou mais recente, já possui o OpenSSH integrado. Para versões mais antigas, você também pode instalá-lo facilmente como umRecurso opcional "Cliente OpenSSH".

Veja tambémInstale o cliente OpenSSH SFTP no Windows 7.

Responder4

Tumbleweed thread, eu sei, mas encontrei a solução. O problema é que ele está tentando usar o binário openssh nativo do Windows e os caminhos dos diretórios colidem.

EUremoveu o cliente openssh do Windows, reinstalou o cygwin com os binários openssh compilados pelo cygwin e agora ssh-keygenfunciona exatamente como deveria.

Também vale a pena notar que outras coisas estavam falhando (como o rsync) pelo que provavelmente é o mesmo motivo.

informação relacionada