작은 Proxmox 클러스터가 있습니다. 그래서 내 /etc/sshd/ssh_known_hosts 파일은 다음과 같습니다
<host1> ssh-rsa <key1>
<host1ip> ssh-rsa <key1>
<host2> ssh-rsa <key2>
<host2ip> ssh-rsa <key2>
"ssh host1"을 사용하여 이 서버에 액세스하면 모든 것이 정상입니다.
그러나 "ssh -vvv host1.fqdn.org"를 사용하여 처음 액세스하면 Known_hosts에 새 키를 추가할지 묻고 이를 허용하면 다음 오류가 발생합니다(이후 실행 로그, 여기서 키는 Known_hosts에 추가되었습니다)
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:<hash>
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /root/.ssh/known_hosts:18
debug3: load_hostkeys: loaded 1 keys from host1.fdqn.org
debug3: hostkeys_foreach: reading file "/etc/ssh/ssh_known_hosts"
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: hostkeys_foreach: reading file "/etc/ssh/ssh_known_hosts"
debug3: record_hostkey: found key type RSA in file /etc/ssh/ssh_known_hosts:2
debug3: load_hostkeys: loaded 1 keys from 192.168.37.20
debug1: Host 'host1.fdqn.org' is known and matches the ECDSA host key.
debug1: Found key in /root/.ssh/known_hosts:18
Warning: the ECDSA host key for 'host1.fqdn.ord' differs from the key for the IP address '192.168.xxx.xxx'
Offending key for IP in /etc/ssh/ssh_known_hosts:2
Matching host key in /root/.ssh/known_hosts:18
Are you sure you want to continue connecting (yes/no)? ^C
이것은 나에게 이해가 되지 않습니다. 단 하나의 서버만 원클릭으로 실행됩니다. 어쨌든 실제로 "host1"과 "host1.fqdn.org"가 동일한 시스템이므로 ssh가 동일한 IP를 가지고 있다는 것을 확신시킬 수 있습니까?
답변1
~/.ssh/config
클라이언트( ) 에서 다음 옵션을 찾을 수 있습니다 .
CanonicalizeHostname
명시적인 호스트 이름 정규화가 수행되는지 여부를 제어합니다. yes로 설정하면 ssh(1)는CanonicalDomains
접미사 및 규칙을 사용하여 명령줄에 지정된 호스트 이름을 정규화 하려고 시도합니다CanonicalizePermittedCNAMEs
.
CanonicalDomains
CanonicalizeHostname이 활성화되면 이 옵션은 지정된 대상 호스트를 검색할 도메인 접미사 목록을 지정합니다.
Warning: the ECDSA host key for 'host1.fqdn.org' differs from the key for the IP address '192.168.xxx.xxx'
이거 받으면 이상할 것 같은데오직성명으로 연결하는 경우. 내가 아는 한, 연결에 사용된 이름에 관계없이 저장된 IP 키를 확인해야 합니다. IP에 사용된 키가 변경된 경우 를 사용하여 삭제해야 합니다 ssh-keygen -R 192.168.xxx.xxx
. 그 자체로는 명확하지 않지만, 내가 기억하는 한 해당 IP를 사용하여 호스트에 연결할 때마다 불평을 했습니다.
이는 의도적일 수 있으며, 적절한 권한을 가진 사람이 IP 주소를 재사용하고 있는지, 아니면 수상한 일이 발생했는지 알 수 있는 방법이 없습니다.