SSH를 설정할 때 Known_hosts 파일에 IP 주소 입력을 비활성화합니다.

SSH를 설정할 때 Known_hosts 파일에 IP 주소 입력을 비활성화합니다.

우리는 최근에 두 서버 사이에 비밀번호 없는 연결을 설정했습니다. Known_hosts 파일의 내용과 관련된 보안 문제가 있습니다. 기본적으로 우리의 관심사는 누군가가 우리 시스템에 접근하여 Known_hosts 파일을 볼 수 있다면 이 상자에 연결된 나머지 서버에 대한 IP 주소 정보를 얻을 수 있다는 것입니다.

Known_hosts 파일에 IP 주소가 입력되지 않도록 하는 방법을 찾고 있습니다.

이 문서에는 외부 서버가 알려진 호스트인지 확인을 우회하는 솔루션이 있습니다.

https://www.shellhacks.com/disable-ssh-host-key-checking/?unapproved=26927&moderation-hash=b2ec1001579980d3f812843f3cdac07e#comment-26927

다음 명령문은 Known_hosts 검사를 우회하고 해당 서버 정보를 기존 /ssh/known_hosts파일에 입력하라는 메시지를 표시하지 않고 외부 서버에 로그인합니다. 나는 기사의 한 구절을 인용했다.

"빈 Known_hosts 파일에 키를 보내면 호스트 키 확인을 건너뛸 수 있습니다.

$ ssh -o “UserKnownHostsFile=/dev/null” -o “StrictHostKeyChecking=no” user@host”

이것을 구현할 때 Known_hosts 검사 프로세스를 억제하라는 프롬프트 외에 연결하려는 서버의 IP 주소가 여전히 기존 /ssh/known_hosts파일에 저장되어 있습니까, 아니면 어디에도 저장되어 있지 않습니까? (예: "UserKnownHostsFile=/dev/null")

이런 유형의 명령에 익숙한 사람이 있습니까? IP 주소가 저장되지 않는지 확인하려고 합니다. /dev/null/에 대해 내가 아는 바에 따르면 이는 실제로 사실이지만 80%만 확신합니다. 누구든지 이것을 확인할 수 있습니까? 실제로 SSH 프로토콜을 알 필요는 없으며 Linux 전문가라면 누구나 알고 있을 것입니다.

위에 표시된 것처럼 UserKnownHostsFile을 /dev/null로 리디렉션하면 실제로 IP 주소가 .ssh/known_hosts 파일에 저장되는 것을 방지할 수 있습니다. 감사해요!

답변1

구성 ssh옵션HashKnownHostsknown_hostsssh가 호스트 이름과 IP 주소를 원래 이름 대신 해시된 형식으로 저장하도록 합니다 . 해시된 양식은 단방향 변환이므로 원래 호스트 이름이나 IP 주소를 복구할 수 없습니다. 이를 통해 원래 호스트 이름이나 주소를 파일에 저장하지 않고도 Known_hosts 메커니즘을 예상대로 사용할 수 있습니다.

해시된 Known_hosts 항목은 다음과 같습니다.

|1|G9jVmIB3FBUJ70EpHtCM8PAJhMo=|AlMl5Apfpp3CR+Iy2gZTd+7y6bo= ssh-rsa AAAAB3Nz...

ssh-keygen프로그램은 다음과 같은 파일을 관리하는 데 사용할 수 있습니다.

  • ssh-keygen -H기존 알려진_hosts 파일을 해시된 형식으로 변환합니다.
  • ssh-keygen -FKnown_hosts 파일에서 특정 호스트 이름이 검색됩니다.
  • ssh-keygen -R파일에서 개별 항목을 삭제할 수 있습니다.

관련 정보