ssh-keyscan: 요청하고 수신한 공개 키가 실제로 진짜인지 확인하는 방법은 무엇입니까?

ssh-keyscan: 요청하고 수신한 공개 키가 실제로 진짜인지 확인하는 방법은 무엇입니까?

내부에섬기는 사람/etc/ssh/다음과 같은 디렉토리 파일 에 존재합니다 .

ssh_hosts_rsa_key.pub
ssh_hosts_ecdsa_key.pub
ssh_hosts_ed25519_key.pub

rsa여기에는 등과 같은 키 유형과 일치하는 공개 키가 포함됩니다 .ecdsa

만약에고객다음 명령을 실행합니다.

# Retrieve and Show all the public keys content
ssh-keyscan 192.168.1.X

# Retrieve all the public keys content and Show the fingerprint of them 
ssh-keyscan 192.168.1.X | ssh-keygen -lf -

출력은 각각 다음 public keys과 같습니다.fingerprint

관찰하다

  • 명령을 통해 표시되는 데이터는 서버의 디렉터리에 있는 사용 가능한 파일 ssh-keyscan에서 나옵니다./etc/ssh

우려

  • 서버가 가짜 서버로 교체되거나 클라이언트/서버 통신이 가로채어 손상될 수 있다는 내용을 온라인에서 읽었습니다.

따라서 다음 명령을 실행하더라도:

ssh-keyscan [-H] 192.168.1.X >> ~/home/<username>/public_keys

public_keys서버에서 받은 데이터를 저장하고 나중에 검증/분석하는 사용자 정의 파일은 어디에 있습니까? 그래서...

질문

  • 확인 방법공개 키명령어를 통해 묻고 받은 정보가 ssh-keygen실제로 사실인가요?

목적은 실행을 방지하는 것입니다

ssh-keyscan [-H] 192.168.1.X >> ~/.ssh/known_hosts

파일에 오염된 데이터를 추가하고 ~/.ssh/known_hosts마지막으로 중요한 데이터를 가짜 대상으로 보냅니다.공개 키고객 그 자체.

내 생각엔 서버의 관리자가 이 .pub파일을 클라이언트에 공유하는 것 같습니다.

  • 이메일을 통해
  • FTP를 통한 액세스

따라서 고객은 다음을 수행할 수 있습니다.

  • public_keys파일을 사용하여 파일 내용과 간단한 비교를 해보세요 .pub. 평등해야 한다
  • ssh-keygen옵션과 함께 명령을 사용하면 -lvf파일을 직접 생성하고 명령과 빠르게 비교할 수 있습니다. 역시 평등해야 해fingerprint.pubssh-keyscan 192.168.1.X | ssh-keygen -lf -

언뜻 보면 이것이 가장 확실한 접근 방식일 것입니다. "소규모" LAN/WAN에 적합할 수도 있지만 관리자가 정책으로 인해 이러한 파일을 공유하고 싶지 않다고 가정하면...내 질문에 어떻게 대답해야 합니까? - 물론 또 다른 최악의 시나리오는 관리자의 이메일/FTP도 손상되는 것입니다.

관련 정보