SSH : 동적 주소를 가진 알려진 호스트


12

동적 IP 주소로 호스트에 연결해야합니다.

IP가 변경 될 때마다 SSH가 지문 확인을 요구합니다.

The authenticity of host '...' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)?

SSH를 호스트 공개 키로 전달할 수 있습니까?

  1. SSH는 호스트의 신뢰성을 자동으로 검증합니다
  2. 호스트 키는 known_hosts 파일에 저장되지 않습니다

이 질문은 알려진 호스트에 대한 SSH의 호스트 확인을 어떻게 피할 수 있습니까? 내가 할 동안 억제 SSH 검증에 다른 질문의 목적 때문에 하지 를 억제하려는 : 내가 않는 대신 SSH보다 호스트 그냥 호스트의 공개 키를 사용하여 인증을 가지고 (내가 아는, 그리고 파일에 저장 한) 원하는 known_hosts파일.

나에게 다른 질문은 동적 IP로 잘 알려진 단일 서버에 연결하는 대신 매번 다른 서버에 연결하는 것입니다.

답변:


8

내가 찾을 수있는 가장 좋은 해결책 (즉, 내가 원하는 것에 가장 가까운)은 옵션을 사용하는 것입니다 HostKeyAlias: known_hosts연결하려는 IP 대신에 내가 지정한 호스트 이름을 사용합니다 .

known_hosts주어진 호스트 이름 (예 :) 을 사용하여 호스트의 공개 키를 추가 myhost한 후 다음을 사용하여 연결해야합니다.

ssh -o 'HostKeyAlias myhost' ...

오랜 시간이 걸렸다는 것을 알고 있지만, 이것이 귀하의 질문에 가장 잘 맞는다면 받아들이십시오.
kittykittybangbang

기타 참고 사항 : 파일 또는 전역 파일에 HostKeyAlias구성 값을 추가 할 수 있습니다 . ~/.ssh/config/etc/ssh/ssh_config
kael

6

known_hosts파일은 또한 연결하는 데 사용하는 호스트 이름을 포함, 단지 키가 아닌, 그리고 해당하는 가능하면 IP. 그래서 오류가 발생하는 이유는 서버에서 얻은 트리플렛을 known_hosts 파일에 저장된 것과 비교하는 것입니다.

따라서 IP가 계속 변경되면 비활성화 할 수 CheckHostIP있으며 이는 호스트 이름과 호스트 키만 확인한다는 의미입니다. 변경 사항이 변경되지 않으면 불만이 줄어들지 만 누군가가 귀하의 DNS를 도용하면 위험에 처하게됩니다.


1
답변 주셔서 감사합니다. 최대한 빨리 테스트하겠습니다! 어쨌든 왜 rist에 있을까요? 호스트의 SSH 공개 키를 알고 있다면 누군가가 호스트의 개인 키를 도용하지 않는 한 완전히 안전 할 정도로 충분해야합니까?
peoro

그리고 정직해야한다면 여전히 마음에 들지 않습니다. 이 플래그를 사용하면 SSH는 여전히 액세스 known_hosts합니다. 왜? "ssh는 공개 키가 Y 인 X에 연결합니다"라고 말할 수 없습니까? 왜 안돼? 100 % 확실하지 않습니까?
peoro

아이디어는 호스트 키가 더 큰 전체의 일부이며 연결하는 서버가 여전히 이전에 연결된 서버인지 확인하기에 충분하지 않다는 것입니다. IP 및 DNS 항목도 일치해야합니다. 이것은 네트워크 기반 쉘이므로 네트워크도 확인해야합니다.
NickW
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.