우리는 최근에 두 서버 사이에 비밀번호 없는 연결을 설정했습니다. Known_hosts 파일의 내용과 관련된 보안 문제가 있습니다. 기본적으로 우리의 관심사는 누군가가 우리 시스템에 접근하여 Known_hosts 파일을 볼 수 있다면 이 상자에 연결된 나머지 서버에 대한 IP 주소 정보를 얻을 수 있다는 것입니다.
Known_hosts 파일에 IP 주소가 입력되지 않도록 하는 방법을 찾고 있습니다.
이 문서에는 외부 서버가 알려진 호스트인지 확인을 우회하는 솔루션이 있습니다.
다음 명령문은 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
옵션HashKnownHosts
known_hosts
ssh가 호스트 이름과 IP 주소를 원래 이름 대신 해시된 형식으로 저장하도록 합니다 . 해시된 양식은 단방향 변환이므로 원래 호스트 이름이나 IP 주소를 복구할 수 없습니다. 이를 통해 원래 호스트 이름이나 주소를 파일에 저장하지 않고도 Known_hosts 메커니즘을 예상대로 사용할 수 있습니다.
해시된 Known_hosts 항목은 다음과 같습니다.
|1|G9jVmIB3FBUJ70EpHtCM8PAJhMo=|AlMl5Apfpp3CR+Iy2gZTd+7y6bo= ssh-rsa AAAAB3Nz...
이 ssh-keygen
프로그램은 다음과 같은 파일을 관리하는 데 사용할 수 있습니다.
ssh-keygen -H
기존 알려진_hosts 파일을 해시된 형식으로 변환합니다.ssh-keygen -F
Known_hosts 파일에서 특정 호스트 이름이 검색됩니다.ssh-keygen -R
파일에서 개별 항목을 삭제할 수 있습니다.