ProgramingTip

RSA 키 지문 계산

bestdevel 2020. 9. 28. 09:40
반응형

RSA 키 지문 계산


GitHub에 대한 SSH 키 감사를 수행해야 RSA 키 지문을 어떻게 확인할 수 있는지 잘 모르겠습니다. 원래 Linux에서 SSH 키를 생성하는 가이드를 따랐습니다.

현재 RSA 키 지문을 찾기 입력해야하는 명령은 무엇입니까?


다음 명령을 실행하여 SSH 키의 SHA256 지문을 검색합니다 ( -l새 키를 만드는 대신 "목록"을 -f의미하며 "파일 이름"을 의미).

$ ssh-keygen -lf /path/to/ssh/key

예를 들어 내 컴퓨터에서 실행 한 명령은 다음과 가능합니다 (RSA 공개 키 사용).

$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)

최신 버전의 ssh-keygen으로 GitHub (MD5) 지문 형식을 가져 오려면 다음을 실행하세요.

$ ssh-keygen -E md5 -lf <fileName>

보너스 정보 :

ssh-keygen -lfknown_hostsauthorized_keys파일 작동 합니다.

Linux / Unix / OS X 시스템에서 대부분의 실행 키를 실행면 다음을하십시오.

$ find /etc/ssh /home/*/.ssh /Users/*/.ssh -name '*.pub' -o -name 'authorized_keys' -o -name 'known_hosts'

(다른 사용자의 homedir 내부를 보려면 root 또는 sudo 집합니다.)

이는 ssh-add -l매우 유사하지만 에이전트에 추가 된 키의 지문을 추가합니다. (OS X는 마법의 암호없는 SSH는 ssh-agent를 사용하는 것과 동일하지 않다는 점에 유의하십시오.)


최신 SSH 명령은 지문을 SHA256 키로 제안합니다 .

예를 들면 :

ssh-keygen -lf ~/.ssh/id_dsa.pub 
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)

이전 지문과 비교해야하는 경우 MD5 지문 해싱 기능 을 사용하도록 지정해야 합니다.

ssh-keygen -E md5 -lf ~/.ssh/id_dsa.pub
2048 MD5:4d:5b:97:19:8c:fe:06:f0:29:e7:f5:96:77:cb:3c:71 (DSA)

도 가능 : -E sha1

업데이트 ... 예 ... 예 ... 알아요 ... SSH 용 DSA 키는 더 이상 사용하지 않고, 대신 이전 RSA 키 또는 최신 식 키를 사용합니다.

위에서 설명한 명령을 계속 편집하는 '관리자'에게. 그만 바꾸세요! 명령과 결과 출력이 일치하지 않습니다!


Ubuntu에서 키를 보려면 터미널에 다음 명령을 입력하십시오.

ssh-add -l

다음과 같은 출력이 표시됩니다. 2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23yourName @ ubuntu (RSA)

그러나 다음과 같은 오류가 발생하면; Could not open a connection to your authentication agent.
그러면 ssh-agent가 실행되고 발생하지 않습니다. 다음으로 시작 / 사용할 수 있습니다 : ssh-agent bash(댓글의 @Richard 덕분에) 그런 다음 다시 수 있습니다.ssh-add -l


키 쌍 (개인 및 공개 키)은 동일한 지문을 갖습니다. 따라서 어떤 개인 키가 어떤 공개 키에 존재하는지 기억할 수없는 경우 지문을 비교하여 일치하는 항목을 찾으십시오.

Marvin Vinto가 가장 많이 득표 한 답변은 공개 SSH 키 파일 의 지문을 제공 합니다. 해당 개인 SSH 키 의 지문 도 계명 쿼리 할 수 있지만 아래와 같이 더 긴 일련의-step가 필요합니다.

  1. SSH 에이전트를로드하지 않는 경우로드합니다. 가장 쉬운 방법은

    $ ssh-agent bash
    

    또는

    $ ssh-agent tcsh
    

    (또는 사용하는 다른 쉘).

  2. 테스트 할 개인 키를로드합니다.

    $ ssh-add /path/to/your-ssh-private-key
    

    키가 암호로 보호 된 경우 암호를 입력 한 메시지가 표시됩니다.

  3. 이제 다른 사람들이 말했듯이

    $ ssh-add -l
    1024 fd:bc:8a:81:58:8f:2c:78:86:a2:cf:02:40:7d:9d:3c you@yourhost (DSA)
    

    fd:bc:...당신이 거주하는 지문입니다. 키가 여러 개인 경우 여러 줄이 인쇄되고 마지막 줄에는 마지막으로로드 된 키의 지문이 포함됩니다.

  4. 에이전트를 중지하려는 경우 (즉, 위의 1 단계를 호출 한 경우) 쉘에 'exit'를 입력하기 만하면 ssh 에이전트를로드하기 전에 쉘로 돌아갑니다.

나는 새로운 정보를 추가하지 않지만,이 답변이 모든 레벨의 사용자에게 분명하기를 바랍니다.


키가 SSH 에이전트에있는 경우 가장 빠른 방법 :

$ ssh-add -L | ssh-keygen -E md5 -lf /dev/stdin

에이전트의 각 키는 다음과 같이 인쇄됩니다.

4096 MD5:8f:c9:dc:40:ec:9e:dc:65:74:f7:20:c1:29:d1:e8:5a /Users/cmcginty/.ssh/id_rsa (RSA)

사용 사례에 유용하다는 것을 알았 기 때문에 여기 에서 AWS 포럼의 콘텐츠를 재현 했습니다. AWS로 일치 키와 일치하는 키를 확인하고 싶었습니다.

openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c

위치 :- primary.pem확인할 개인 키입니다.


$ ssh-add -l 

Mac OS X v10.8 (Mountain Lion) -v10.10 (Yosemite) 에서도 작동합니다 .

또한 -E지문 형식을 지정 하는 옵션도 지원 하므로 MD5가 필요한 경우 (예 : GitHub에서 자주 사용됨) -E md5명령에 추가 하기 만하면 됩니다.


이것은 DigitalOcean 방울 을 만들기 위해 SSH 키 지문을 얻는 데 사용하는 셸 기능입니다 .

fingerprint() {
    pubkeypath="$1"
    ssh-keygen -E md5 -lf "$pubkeypath" | awk '{ print $2 }' | cut -c 5-
}

그것을 당신의 ~/.bashrc, 그것을 소싱하고 다음과 같이 지문을 얻을 수 있습니다.

$ fingerprint ~/.ssh/id_rsa.pub
d2:47:0a:87:30:a0:c0:df:6b:42:19:55:b4:f3:09:b9

Windows에서 PuTTY / Pageant를 실행중인 경우 PuTTY (.ppk) 키를 Pageant에로드 할 때 지문이 나열됩니다. 어떤 것을 사용하고 있는지 잊어 버린 경우에 매우 유용합니다.

여기에 이미지 설명 입력


SSH 에이전트가 실행중인 경우

ssh-add -l

모든 ID의 RSA 지문 -L을 나열 하거나 공개 키를 나열합니다.

에이전트가 실행되고 있지 않으면 다음을 시도하십시오.

ssh-agent sh -c 'ssh-add; ssh-add -l'

그리고 공개 키의 경우 :

ssh-agent sh -c 'ssh-add; ssh-add -L'

다음 메시지가 표시되는 경우 : ' 에이전트에 신원이 없습니다. ', 그런 다음 ssh-keygen먼저 RSA 키를 생성해야합니다 .


Google Compute Engine은 Linux 인스턴스의 직렬 출력에 SSH 호스트 키 지문을 표시합니다. API는 GCE에서 해당 데이터를 가져올 수 있으며 인스턴스에 로그인 할 필요가 없습니다.

다른 곳에서는 찾지 못했지만 직렬 출력에서 ​​찾았습니다. 저는 지문이 좀 더 프로그래머에게 친숙한 곳에 있어야한다고 생각합니다.

그러나 인스턴스 유형에 따라 달라지는 것 같습니다. Debian 7 (Wheezy) f1-micro 인스턴스를 사용하고 있습니다.


때로는 ~/.ssh디렉토리 에 많은 키가있을 수 있으며 GitHub / Gitlab / etc에 표시된 지문과 일치하는 것이 무엇인지 알 수 없습니다.

~/.ssh디렉토리 에있는 모든 키의 키 파일 이름과 MD5 지문을 표시하는 방법은 다음과 같습니다 .

cd ~/.ssh
find . -type f -exec printf "\n{}\n" \; -exec ssh-keygen -E md5 -lf {} \;

(매개 변수의 의미 find명령 에 대한이 답변을 참조하십시오 .

하나의 키에 속한 개인 / 공개 파일은 동일한 지문을 가지므로 중복 항목이 표시됩니다.


처음 연결하기 전에 원격 SSH 서버를 확인하려면 www.server-stats.net/ssh/ 에서 서버에 대한 모든 SHH 키와 키가 알려진 시점을 볼 수 있습니다.

SSL 인증서와는 다르지만 처음으로 SSH 서버에 연결하기 전에 반드시해야 할 일입니다.


Fedora에서는 키가 @라는 것을 알려주는 [위치 ~ / ​​.ssh]를 수행합니다.

/root/.ssh
/root/.ssh/authorized_keys

참고 URL : https://stackoverflow.com/questions/9607295/calculate-rsa-key-fingerprint

반응형