SSH를 실행하는 bash 스크립트 내에서 알려진 특정 RSA 키에 대해서만 호스트를 자동으로 추가합니다.

SSH를 실행하는 bash 스크립트 내에서 알려진 특정 RSA 키에 대해서만 호스트를 자동으로 추가합니다.

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

관련 정보