ti-enxame.com

ssh-keygen não cria chave privada RSA

Estou tentando criar uma chave privada e está tendo um problema.

Quando eu uso ssh-keygen -t rsa -b 4096 -C "[email protected]", Recebo uma chave privada no seguinte formato.

-----BEGIN OPENSSH PRIVATE KEY-----
uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END OPENSSH PRIVATE KEY-----

E isso não está sendo aceito para um aplicativo que estou tentando usar.

Estou esperando uma chave no seguinte formato RSA.

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,25737CC2C70BFABADB1B4598BD8AB9E9

uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END RSA PRIVATE KEY-----

Como crio o formato correto? Isso é estranho, porque todos os outros mac que eu tenho cria o formato correto, exceto aquele com o qual estou tendo problemas.

Estou em um novo Mac OS Mojave instalado

91
Moon

Enfrentei o mesmo problema recentemente (após a atualização para o mojave 10.14.1), eis duas soluções possíveis para esse problema.

  • Faça o downgrade do seu binário ssh-keygen (você pode facilmente obter a versão antiga a partir de qualquer imagem linux/docker)

[~ # ~] ou [~ # ~]

  • Adicionar opção -m PEM no seu comando ssh-keygen. Por exemplo, você pode executar ssh-keygen -m PEM -t rsa -b 4096 -C "[email protected]" para forçar o ssh-keygen a exportar para o formato PEM.

Parece que na versão atual do ssh-keygen no mojave, o formato padrão de exportação é RFC4716 como mencionado aqui

91
sayboras

Novas chaves com o formato de chave privada OpenSSH podem ser convertidas usando o utilitário ssh-keygen no formato PEM antigo.

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

Não é necessário fazer o downgrade para o OpenSSH mais antigo apenas para atingir esse resultado.

76
mydeardiary