Estou tentando criar uma chave privada e estou tendo um problema.
Quando 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 macs que tenho criam o formato correto, exceto aquele com o qual estou tendo problemas.
Estou em um novo Mac OS Mojave instalado
Eu enfrentei o mesmo problema recentemente (após a atualização para o mojave 10.14.1), aqui estão 2 soluções possíveis para esse problema.
OU
-m PEM
ao seu comando ssh-keygen. Por exemplo, você pode executarssh-keygen -m PEM -t rsa -b 4096 -C "[email protected]"
para forçar o ssh-keygen a exportar comoPEM
formato.Parece que na versão atual do ssh-keygen no mojave, o formato de exportação padrão é
RFC4716
o mencionado aquiNovas chaves com formato de chave privada OpenSSH podem ser convertidas usando o utilitário ssh-keygen para o formato PEM antigo.
Não há necessidade de fazer o downgrade para o OpenSSH mais antigo apenas para obter esse resultado.
Alguma elaboração nas respostas acima para fornecer um caminho claro para a chave pública e privada.
Você pode exportar diretamente (-e) suas chaves ssh para um formato pem:
Para sua chave pública:
Para sua chave privada:
As coisas são um pouco mais complicadas, pois o ssh-keygen só permite que o arquivo de chave privada seja alterado 'in-situ'. (ou seja, ele substitui seu arquivo de chave pelo novo arquivo).
Então você pode manter seu arquivo antigo:
Dado que estamos apenas exportando o arquivo,
<new pass phrase>
ele pode ser idêntico ao seu<old pass phrase>
(a menos que você queira alterar a frase secreta ao mesmo tempo).NOTA: é uma má ideia passar sua frase secreta como um argumento para um aplicativo cli.
O método seguro é:
Com este método, você será solicitado a inserir sua senha antiga e nova.
Nota: depois de converter seu arquivo de chave privada para um .pem, o arquivo agora está em texto não criptografado, isso é ruim .