Questão Como você converte uma chave privada SSH em um .ppk na linha de comando do Windows?


Eu criei um par de chaves com ssh-keygen. Agora eu quero usar o mesmo par de chaves com aplicativos baseados em PuTTY.

Porque eu estou trabalhando em um ambiente CLI, eu quero converter a chave para o .ppk formato a partir deste ambiente.

Aparentemente, você pode usar puttygen openssh_private_key -o output_filename.ppk em ambientes semelhantes ao UNIX. Mas a versão do Windows puttygen apenas carregará a chave e solicitará que você use a GUI para exportar a chave.

Modo em lote para o Windows PuTTYgen sugere que isso simplesmente não é atualmente possível, pelo menos com puttygen. Eu aceitaria de bom grado e opção que usa outros meios embora.

Como posso converter a chave da linha de comando?


4


origem




Respostas:


WinSCP 5.9 e suportes mais recentes conversão de linha de comando de chaves privadas do formato OpenSSH (ou ssh.com) para o PuTTY .ppk formato.

Use o /keygen interruptor:

winscp.com /keygen mykey.pem /output=mykey.ppk

Ou você pode compilar / executar o Linha de comando Unix puttygen usando o Cygwin.


Ou construa sua própria ferramenta a partir do código PuTTY. É de código aberto. Deve ser bem fácil.

Use o import_ssh2 para carregar o .pem:

struct ssh2_userkey *import_ssh2(const Filename *filename, int type,
             char *passphrase, const char **errmsg_p)

Use o ssh2_save_userkey para salvá-lo como o .ppk:

int ssh2_save_userkey(const Filename *filename, struct ssh2_userkey *key,
          char *passphrase)

6



Eu estava apenas tentando construir um roteiro de conveniência. Mas esta é a informação mais útil que eu provavelmente posso obter. - Der Hochstapler
WinSCP 5.8 beta com suporte de linha de comando para converter a chave privada foi liberado. - Martin Prikryl
Impressionante! Vou tentar na próxima vez que o problema aparecer :) - Der Hochstapler
Se ele trava esperando por um pressionamento de tecla, provavelmente você está usando winscp.exe em vez de winscp.com. O WinSCP tem uma maneira muito estranha de especificar o modo não interativo. - Robert Važan
@ RobertVažan Não é sobre a não interatividade. Se você quiser escrever algo, você deve usar um aplicativo de console, não um aplicativo GUI. Ler sobre Executáveis ​​WinSCP. - Martin Prikryl


Se você está rodando no linux ou gerando sua chave lá (ou talvez você pode?) Então você pode usar

puttygen -t rsa -C "my home key" -o mykey.ppk

Caso contrário, se você estiver no Windows, não consigo ver como você pode realmente fazer isso, além de gerar a chave em outra máquina.


3



Isto é o que eu uso até agora, mas um aborrecimento é que, pelo menos no Windows, deixa a janela puttygen aberta, não encontrei uma maneira de fechá-lo automaticamente - Purefan


NOTA: O OP requer a linha de comando. Esta resposta usa uma aplicação gráfica ... Vai deixar a resposta aqui apenas no caso de ser útil.

Existe uma solução possivelmente mais simples.

1) Baixe (se você ainda não o tiver) o aplicativo PuTTY Key Generator (PuTTYgen), indo Aqui ou Aqui.

2) Abra o PuTTYgen

3) Clique em Conversões e, em seguida, clique na chave de importação

4) Localize o arquivo de chave e clique em abrir.

Agora você pode salvar sua chave como um arquivo PPK clicando no botão Salvar chave particular

Você também pode salvar uma versão pública da sua chave clicando no botão Salvar chave pública

https://devops.profitbricks.com/tutorials/use-ssh-keys-with-putty-on-windows/

https://kb.site5.com/shell-access-ssh/how-to-convert-ssh-keys-to-ppk-format/


1



A questão é sobre "Linha de comando do Windows". - Martin Prikryl
@MartinPrikryl - Você está correto, vou fazer uma anotação sobre isso. Eu também poderia removê-lo, mas tenho visto, com frequência, casos semelhantes em que os leitores julgaram úteis as respostas de qualquer maneira. E esse é o principal objetivo do SO. - sancho.s