내 SSH 키를 삭제했어요

내 SSH 키를 삭제했어요

저는 맥(OSX)을 사용하고 있습니다.

실수로 SSH 키를 삭제했지만 아직 컴퓨터를 다시 시작하지 않았으므로 해당 키를 사용하여 서버에 액세스할 수 있습니다. ssh-agent가 메모리에 어떤 형태로든 있는 것 같은데요?

ssh-agent에서 키를 검색할 수 있는 방법이 있나요? 비밀번호 등을 아직도 기억하고 있어요.

답변1

시간이 얼마나 있는지에 따라 다릅니다. C를 알고 있다면 가장 안전한 방법은 gdb를 사용하여 ssh-agent 프로세스(루트여야 함)에 연결하고 키 데이터를 인쇄하는 것입니다. ID 키는 ID의 연결된 목록이 포함된 idtable이라는 배열에 저장됩니다. 따라서 다음과 같이 (1)에 정의된 대로 BIGNUM 데이터를 인쇄할 수 있습니다.

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

숫자 2는 버전(2가 필요할 수 있음)이고 마지막 요소는 BIGNUM 중 하나입니다(다른 요소는 엔진, e, d, p, q, dmp1, dmq1, iqmp).

이제 이 데이터를 사용하려면 RSA 구조((1)에 정의된 대로)를 정의하고 채우는 작은 유틸리티 프로그램을 작성해야 합니다. 이 작업을 자동으로 수행하기 위해 다른 유틸리티를 작성할 수도 있지만 시간이 더 걸리고 데이터를 수동으로 인쇄할 수도 있습니다. 그런 다음 위의 RSA 데이터를 사용하여 PEM_write_RSAPrivateKey (2) 함수를 호출하면 새로운 결과를 얻게 됩니다.암호화되지 않은rsa 파일.

자세한 내용을 제공하지 못해 죄송합니다. 시간이 있으시면 이것이 시작점이 될 수 있습니다.

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

(2) pem(3)의 매뉴얼 페이지를 참조하십시오.

답변2

아니요, 에 저장된 개인 키를 얻을 수 있는 방법은 없습니다 ssh-agent. 이는 프록시의 목적에 어긋나기 때문입니다. 댓글 프롬프트를 따르고 새 댓글을 만드는 것이 좋습니다.

Mac에는 백업을 제공하는 백홀 머신이 있지 않습니까? 아니면 어떻게 삭제하셨나요? 쓰레기통에 아무것도 없나요?

관련 정보