답변:
공개 / 개인 DSA 키 쌍ssh-keygen -y -e -f <private key>
을 어떻게 테스트합니까?에 대한 정답 대신에 방법 을 선호합니다 . 스택 오버플로.
ssh-keygen -y -e -f <private key>
개인 키를 가져 와서 사용 가능한 공개 키와 직접 비교할 수있는 해당 공개 키를 인쇄합니다. (힌트 : 주석 또는 키 옵션에주의하십시오.)
(어떻게 지내고 있습니까? 공개 키가 개인 키로 직접 또는 간접적으로 인코딩되기를 바랍니다.)
나는 이것을 직접 필요로했고 다음 Bash one-liner를 사용했다. 키가 함께 있으면 아무 것도 출력하지 않아야합니다. -q
스크립트의 diff에 약간 을 적용 하면 diff는 리턴 코드 만 적절하게 설정합니다.
PRIVKEY=id_rsa
TESTKEY=id_rsa.pub
diff <( ssh-keygen -y -e -f "$PRIVKEY" ) <( ssh-keygen -y -e -f "$TESTKEY" )
테스트중인 공개 키 파일의 위치에 따라 승인 된 답변이 오 탐지 결과를 제공 할 수 있습니다. 이것은 @drewbenn의 주석에 설명 된 동작 때문입니다. 특히, -e 옵션을 개인 키 파일과 함께 -f 옵션 매개 변수로 사용하면 연관된 공개 키 파일에있는 내용을 단순히 앵무새 (포맷)합니다.
다시 말해,
ssh-keygen -y -f id_rsa
(분명히) 생성 공개 키 값을하고,
ssh-keygen -y -e -f id_rsa
단순히 기존 id_rsa.pub 의 키를 출력하고 재 포맷 합니다 .
내 경우에는 쌍이 손상되지 않았는지 확인해야합니다. 그래서 나는 다음을 비교하기로 결정했습니다.
ssh-keygen -y -f id_rsa | cut -d' ' -f 2
와
cut -d' ' -f 2 id_rsa.pub
따라서:
diff <(cut -d' ' -f 2 id_rsa.pub) <(ssh-keygen -y -f id_rsa | cut -d' ' -f 2)
아마도 이것은 유연하지는 않지만 내 요구에 더 좋습니다. 다른 사람을 도울 수도 있습니다.
ssh -v
많은 도움이됩니다.