답변:
나는 나를 위해 더 잘 작동하는 것처럼 보였다.
ssh-keygen -y -f <private key file>
이 명령은 주어진 개인 키에 대한 공개 키를 출력하므로 출력을 각 * .pub 파일과 비교하십시오.
id_rsa.pub.blahhost
파일이 있으며 어느 것이 하나의 id_rsa
개인 키와 일치하는지 알 수 없으며 암호가없는 scp를 설정하여 오래된 웹 사이트에서 마이그레이션 할 수 있습니다. 새로운 키 페어를 만드는 것은 옵션이 아닙니다. 내 키가 제대로 설정되어 있고 엉망이되지 않습니다.
diff를 사용하면 쉽게 확인할 수 있습니다.
diff <(ssh-keygen -y -f <private_key_file>) <public key file>
유일한 이상한 점은 파일이 동일하면 diff가 아무 것도 말하지 않으므로 공개 및 개인 이 일치 하지 않는 경우에만 알려 줍니다.
diff -s
diff -qs
간단한 "동일 / 동일하지 않은 대답을 반환합니다. (2) diff를 실행하기 전에 공개 키 파일에서 주석을 삭제해야합니다.
다음 명령을 입력하여 개인 키와 공개 키가 $ USER / .ssh 디렉토리에서 일치하는 세트 (동일)인지 또는 일치하는 세트 (차이)인지 확인하십시오. cut 명령은 공개 키의 행 끝에있는 주석이 비교되는 것을 방지하여 키만 비교할 수 있도록합니다.
ssh-keygen -y -f ~/.ssh/id_rsa | diff -s - <(cut -d ' ' -f 1,2 ~/.ssh/id_rsa.pub)
출력은이 라인 중 하나와 같습니다.
Files - and /dev/fd/63 are identical
Files - and /dev/fd/63 differ
사용자가 ~ / .ssh / files 및 일치하는 키 세트의 파일 권한을 확인하는 데 사용하는 쉘 스크립트를 작성했습니다. ssh를 설정하는 사용자 사건으로 인한 문제를 해결합니다. 도움이 될 수 있습니다. https://github.com/BradleyA/docker-security-infrastructure/tree/master/ssh
참고 : 이전 답변 (2018 년 3 월)은 더 이상 최신 버전의 openssh에서 작동하지 않습니다. 이전 답변 : diff -qs <(ssh-keygen -yf ~ / .ssh / id_rsa) <(cut -d ''-f 1,2 ~ / .ssh / id_rsa.pub)
공개 키로 무언가를 암호화하고 해독하는 개인 키를 확인하십시오.
Jeff Atwood 이외의 다른 사람이 작성한 이 코드 프로젝트 기사 는 .NET crypto 클래스 주위에 간단한 래퍼를 구현합니다. 이러한 키가 RSA와 함께 사용하기 위해 작성되었다고 가정하면 비대칭 클래스를 공개 키와 함께 사용하여 암호화하고 개인 키와 동일하게 암호를 해독하십시오.
아무것도 반환하지 않으면 다음과 일치합니다.
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh -i $HOME/.ssh/id_rsa localhost