auth.log의 sshd 항목에 제공되는 SHA256은 무엇입니까?


20

ssh를 통해 로그인하면 auth.log에서 다음을 볼 수 있습니다.

Dec 14 16:29:30 app sshd[22781]: Accepted publickey for dev from XXX.XXX.XX.XXX port XXXXX ssh2: RSA SHA256:pO8i...

이 SHA256 정보가 무엇인지 알아 내려고 노력했지만 일치하는 것을 찾을 수 없었습니다. 먼저 연결하는 클라이언트 (공개 키, 지문, 해시 호스트 이름 등)의 일부 정보 일 수 있다고 생각했지만 서버 측에서도 확인할 것이 없습니다.

내가 찾은 가장 가까운 정보는 here 이지만 "인증을위한 키를 사용하는 예입니다.이 키는 잘못된 철자 지문을 base64의 SHA256 해시로 표시합니다."라는 말을 이해하지 못했습니다. , 어떤 종류의 해당 키 지문도 찾지 못했습니다.

감사합니다.

답변:


27

SHA256SSH 세션을 인증하는 데 사용 된 RSA 공개 키 의 해시입니다.

이를 확인하는 방법은 다음과 같습니다.

ssh-keygen -lf .ssh/id_rsa.pub

또는 다음없이 확인하십시오 ssh-keygen.

  • ssh-rsa접두사 제거
  • 를 사용하여 키를 바이트로 디코딩 base64
  • SHA256키 의 해시를 16 진수가 아닌 바이트로 가져옵니다.
  • 사용하여 바이트를 인코딩 base64

예를 들면 다음과 같습니다.

cat .ssh/id_rsa.pub    |
    awk '{ print $2 }' | # Only the actual key data without prefix or comments
    base64 -d          | # decode as base64
    sha256sum          | # SHA256 hash (returns hex)
    awk '{ print $1 }' | # only the hex data
    xxd -r -p          | # hex to bytes
    base64               # encode as base64

11
당신이 사용할 수있는 것으로 밝혀졌습니다ssh-keygen -lf .ssh/id_rsa.pub
Joshua Griffiths

2
귀하의 의견은 별도의 종합적인 더 나은 답변이라고 생각하며 별도로 추가해야합니다.
휴 W

1
ssh-keygen -lf .ssh/id_rsa.pub별도의 답변 으로 추가 +1 수동 인코딩보다 낫습니다.
Ilya Bobyr

2

macOS 10.13.6에 대한 동일한 질문이 있었는데 대답에는 몇 가지 조정이 필요했습니다.

cat .ssh/id_rsa.pub    |
    awk '{ print $2 }' | # Only the actual key data without prefix or comments
    base64 -D          | # decode as base64
    shasum -a 256      | # SHA256 hash (returns hex)
    awk '{ print $1 }' | # only the hex data
    xxd -r -p          | # hex to bytes
    base64               # encode as base64

고마워.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.