여러 호스트가 동일한 IP 및 DNS 이름을 공유하는 경우 Known_hosts를 어떻게 편집합니까?

여러 호스트가 동일한 IP 및 DNS 이름을 공유하는 경우 Known_hosts를 어떻게 편집합니까?

나는 정기적으로 듀얼 부팅 OS X/Linux 컴퓨터인 컴퓨터에 SSH를 통해 접속합니다. 두 OS 인스턴스는 동일한 호스트 키를 공유하지 않으므로 동일한 IP와 DNS를 공유하는 두 호스트로 볼 수 있습니다. IP가 192.168.0.9이고 이름이 이라고 가정해 보겠습니다 hostname.hostname.domainname

내가 이해하는 한, 두 호스트에 연결할 수 있는 솔루션은 두 호스트를 모두 파일에 추가하는 것입니다 ~/.ssh/know_hosts. 그러나 파일이 해시되고 호스트당 여러 항목( 192.168.0.9, hostname, hostname.domainname)이 있을 수 있으므로 말처럼 쉽지 않습니다. 결과적으로 다음과 같은 경고가 표시됩니다.

Warning: the ECDSA host key for 'hostname' differs from the key for the IP address '192.168.0.9'

known_hosts해시를 유지하면서 파일을 편집하는 쉬운 방법이 있습니까 ? 예를 들어, 특정 호스트 이름에 해당하는 줄을 어떻게 찾을 수 있나요? 일부 알려진 호스트에 대한 해시를 어떻게 생성할 수 있나요?

192.168.0.9이상적인 솔루션을 사용하면 , hostname또는 이라고 부르든 hostname.domainname, Linux 호스트 키나 OSX 호스트 키를 사용하든 상관없이 ssh를 사용하여 이 컴퓨터에 원활하게 연결할 수 있습니다 . 하지만 실제 중간자 공격이 발생하면 경고를 받고 싶습니다.이 두 키가 아닌 다른 키를 사용하는 경우.

답변1

여기서 가장 간단한 해결책은 Linux와 OS X에 동일한 호스트 키를 사용하는 것입니다. 즉, /etc/ssh/ssh_host_*_key*파일 세트 하나를 선택하여 다른 OS에 복사하는 것입니다. 그런 다음 부팅한 OS에 관계없이 동일한 호스트 키가 SSH 클라이언트에 제공되며 SSH 클라이언트는 전혀 현명하지 않습니다.

답변2

위의 설명에서 @Izzy가 제안한 것처럼 ssh는 문제가 있는 줄을 알려주고 해당 줄을 제거하고(다른 곳에 저장) 새 키를 수락한 다음 제거된 줄을 다시 복사하면 동일한 키 두 개가 생성됩니다. 호스트와 SSH는 둘 중 하나를 허용합니다.

ssh-keygen -H -F <hostname>( Known_hosts 파일에서 해당 호스트 이름과 일치하는 행을 찾는 데 사용할 수도 있습니다 . 제거된 행을 다시 복사한 후 이를 실행하면 두 개의 항목이 나열됩니다.)

PuTTY가 동일한 작업을 수행하도록 하는 방법을 아는 사람이 있다면 이에 대해 듣고 싶습니다.

답변3

나는 이것이 당신이 달성하고자 하는 것에 도움이 될 수 있다는 것을 발견했습니다.

원천:https://stackoverflow.com/questions/733753/how-to-handle-ssh-host-key-verification-with-2-다른-hosts-on-the-same-but

다음과 같이 .ssh 디렉터리에 구성 파일을 만듭니다.

Host server1
  Hostname x1.example.com
  HostKeyAlias server1
  CheckHostIP no
  Port 22001
  User karl

Host server2
  Hostname x2.example.com
  HostKeyAlias server2
  CheckHostIP no
  Port 22002
  User karl

아래 설명(man ssh_config에서)

호스트IP 확인

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

HostKeyAlias

호스트 키 데이터베이스 파일에서 호스트 키를 검색하거나 저장할 때 실제 호스트 이름 대신 사용해야 하는 별칭을 지정합니다. 이 옵션은 SSH 연결을 터널링하거나 단일 호스트에서 실행되는 여러 서버에 유용합니다.

사용자 이름 및 포트 줄을 사용하면 명령줄에서 해당 옵션을 제공할 필요가 없으므로 다음을 사용할 수 있습니다.

% ssh server1
% ssh server2

답변4

동일한 IP를 공유하는 다양한 VPS 상자에 연결할 때 각각 다른 SSH 포트(20022,30022 등)가 있어서 다른 키를 가진 알려진 호스트로 등록되기 때문에 해당 문제가 발생하지 않습니다.

그것이 당신을 위한 해결 방법이 될 수 있을까요?

관련 정보