bash 스크립트를 실행한 다음 SSH를 통해 내 서버에 연결하는 Chron 작업이 있습니다. 하지만 내 서버의 IP 주소는 수시로 변경됩니다(내 bash 스크립트에는 새 IP 주소를 찾는 방법이 있습니다). 하지만 문제는 내 bash 스크립트에 "호스트의 신뢰성을 확인할 수 없습니다..."라는 경고가 표시된다는 것입니다. StrictHostKeyChecking=no
때문에 사용하고 싶지 않습니다중개자공격. 하지만:
만약에RSA 키예를 들어와 동일합니다.RSA 키이미 known_host
파일 에 있거나RSA 키나는 그것을 다른 MyServersPublicKey
파일에 저장했고 그것이 내 서버이고 새로운 IP를 가지고 있다고 가정합니다.
경고 자체가 표시됩니다.지문~의RSA 키대신 "알 수 없는" 호스트에서RSA 키그 자체. 절약할 수 있을 것 같아RSA 키 지문내 호스트를 사용하고 bash 스크립트를 사용하도록 하세요.지문경고에서 저장한 것과 비교해 보세요.지문. 하지만 더 쉬운 방법을 아는 사람이 있는지 궁금합니다.
이를 위해 자체 bash 스크립트를 작성해야 합니까, 아니면 사용 가능한 것이 있습니까?
답변1
설명에서 언급했듯이 인증서(서명된 호스트 키)를 생성하면 이 문제를 해결하는 데 도움이 됩니다( ssh-keygen
이 프로세스를 설명하는 매뉴얼 페이지의 "인증서" 장 참조). 기본적으로 서버에 CA를 만들고, 호스트 키에 서명하고, CA 공개 키를 컴퓨터에 저장합니다 known_hosts
. 예를 들면 다음과 같습니다.
@cert-authority * ssh-rsa AAAAB5W...
또 다른 가능성은 호스트 키 앞에 IP를 추가하는 bash 스크립트를 작성하는 것입니다 known_hosts
(파일을 해시하지 않은 경우). 다음과 같이 작동해야 합니다.
sed -i -e "s/your_host/new_ip,your_host/" ~/.ssh/known_hosts