Excluiu minhas chaves ssh

5

Estou em um Mac (OSX).

Eu deletei minhas chaves ssh acidentalmente, mas ainda não reiniciei meu computador, por isso ainda posso acessar servidores com minha chave. Eu acho que o agente ssh tem algum tipo de memória?

Existe alguma maneira de recuperar a chave do agente ssh? Ainda me lembro da senha, etc.

    
por James 05.09.2015 / 05:20

2 respostas

6

Depende de quanto tempo você tem. Se você conhece C, a maneira mais segura é conectar-se ao gdb no processo ssh-agent (deve ser root) e imprimir os dados-chave. As chaves de identidade são armazenadas em uma matriz chamada idtable, que contém uma lista de identidades vinculadas. Então, você pode imprimir os dados BIGNUM (como definido em (1)) como:

(gdb) call BN_bn2hex(idtable[2]->idlist->tqh_first->key->rsa->n)

onde o número 2 é a versão (você provavelmente precisa de 2) e o último elemento é um dos BIGNUM (o resto são engine, e, d, p, q, dmp1, dmq1, iqmp).

Agora, para usar esses dados, você precisa escrever um pequeno programa utilitário onde você define uma estrutura RSA (definida como em (1)) e os preenche. Provavelmente você poderia escrever outro programa utilitário para fazer isso automaticamente, mas depois você precisa de mais tempo, basta imprimir os dados manualmente. Então você chama a função PEM_write_RSAPrivateKey (2) com os dados RSA acima e você tem um novo arquivo rsa descriptografado .

Desculpe por não ter mais detalhes, mas se você tiver tempo, pode ser um ponto de partida.

(1) /usr/include/openssl/rsa.h

(2) veja man page para pem (3)

    
por 05.09.2015 / 18:47
0

Não, não há nenhuma maneira de armazenar as chaves privadas em ssh-agent , porque seria uma violação daquilo que o agente fez. Eu recomendo que você crie novos como o comentário sugere.

No Mac, há alguma máquina de retorno, que deve fornecer seu backup, não é? Ou como você os excluiu? Nada no lixo?

    
por 05.09.2015 / 08:46