SSH가 IP 주소에 대해 Known_host 항목을 추가하는 이유는 무엇입니까?

SSH가 IP 주소에 대해 Known_host 항목을 추가하는 이유는 무엇입니까?

nms.example.org라는 호스트가 있습니다. 내 파일에는 /etc/ssh/ssh_known_hostsRSA 키가 포함된 호스트 항목이 있습니다. 이 항목과 다른 모든 항목은 내 구성 관리 시스템에서 관리됩니다.

nms.example.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZqfmVPs/XqTS...

/etc/ssh/ssh_config또한 특정 호스트에 대한 호스트 키 별칭을 설정하는 항목이 내 항목에 있습니다 . 내가 모든 것을 올바르게 이해한다면 이는 " nms.example.org해야 한다"만이 ​​중요하다는 것을 의미합니다.

Host nms.example.org nms.example nms
    HostKeyAlias nms.example.org
    HostName nms.example.org

그렇다면 클라이언트 ssh에서 연결할 때 여전히 다음을 사용하여 각 사용자 Known_hosts에 키를 추가해야 한다고 생각하는 것 같습니다.지적 재산권주인?

$ ssh nms -v
OpenSSH_6.0p1 Debian-4+deb7u4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/zoredache/.ssh/config
debug1: /home/zoredache/.ssh/config line 61: Applying options for *
debug1: /home/zoredache/.ssh/config line 71: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 84: Applying options for nms
debug1: /etc/ssh/ssh_config line 363: Applying options for *
debug1: Connecting to nms.example.org [104.236.190.144] port 22.
debug1: Connection established.
debug1: identity file /home/zoredache/.ssh/zoredache-20140204.id_rsa type 1
...
debug1: Server host key: RSA 6b:5f:b6:e9:13:c3:b7:39:1e:ec:74:05:33:64:4d:5e
debug1: using hostkeyalias: nms.example.org
debug1: Host 'nms.example.org' is known and matches the RSA host key.
debug1: Found key in /etc/ssh/ssh_known_hosts:104
Warning: Permanently added the RSA host key for IP address '192.0.2.144' to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
...

SSH는 내 호스트가 유효하다는 것을 알고 있습니다.(참조:) Host 'nms.example.org' is known and matches the RSA host key그러면 사용자 프로필에 IP 키를 추가하는 이유는 무엇입니까?

컴퓨터를 다시 설치할 때 구성 관리 시스템이 호스트 키를 수집하여 모든 시스템에 배포하기 때문에 이는 매우 짜증나는 일입니다. 그러나 IP 관련 충돌 키는 사용할 때마다 Known_host 파일에 남아 있어 연결 시도 시 경고를 발생시켜 스크립트 연결을 방해합니다.

$ ssh nms -v
OpenSSH_6.0p1 Debian-4+deb7u4, OpenSSL 1.0.1e 11 Feb 2013
...
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u4
debug1: using hostkeyalias: nms.example.org
...
debug1: Server host key: RSA 6b:5f:b6:e9:13:c3:b7:39:1e:ec:74:05:33:64:4d:5e
debug1: using hostkeyalias: nms.example.org
debug1: Host 'nms.example.org' is known and matches the RSA host key.
debug1: Found key in /etc/ssh/ssh_known_hosts:104
Warning: the RSA host key for 'nms.example.org' differs from the key for the IP address '192.0.2.144'
Offending key for IP in /home/zoredache/.ssh/known_hosts:25
Matching host key in /etc/ssh/ssh_known_hosts:104
Are you sure you want to continue connecting (yes/no)?

SSH가 각 사용자의 Known_hosts에서 이 IP별 값을 캐싱하는 것을 방지하는 방법은 무엇입니까? 아니면 이런 짜증나는 행동을 참아야 하는 보안상의 이유가 있나요? 또한 일부 서버에는 동적 IP 주소가 있기 때문에 실망스럽습니다. 내 구성 관리가 DNS 업데이트를 처리합니다. 그러나 각 사용자의 Known_host 파일을 채우는 나머지 IP별 호스트 키를 얻습니다.

답변1

CheckHostIP일을 완수 하는 것이라고 생각합니다 .

이 플래그가 "yes"로 설정되면 ssh(1)는 파일에서 호스트 IP 주소를 추가로 확인합니다 known_hosts. 이를 통해 ssh는 DNS 스푸핑으로 인해 호스트 키가 변경되었는지 감지할 수 있습니다. 이 옵션을 "No"로 설정하면 검사가 수행되지 않습니다. 기본값은 "예"입니다.

이 옵션을 사용하면 잘못된 구성이나 공격이 발생할 경우 약간 더 나은 진단을 얻을 수 있지만 실제로는 제가 생각할 수 있는 어떤 방식으로든 보안이 향상되지 않습니다.

꺼져 있는 경우 CheckHostIPSSH(OpenSSH 6.7p1로 시작)는 이름으로 새 호스트에 연결할 때 IP 주소를 기록하지 않습니다. 따라서 이것을 다음 항목에 추가하십시오 .ssh/config.

CheckHostIP no

Host특정 호스트(특히 동적 IP 주소가 있는 호스트)에 대해서만 이 기능을 끄고 싶다면 섹션에 추가하면 됩니다.

관련 정보