동일한 (그러나 변경) IP 주소에서 2 개의 다른 호스트로 SSH 호스트 키 확인을 처리하는 방법은 무엇입니까? [닫은

StackOverflow https://stackoverflow.com/questions/733753

문제

매일 WAN IP를 변경하는 위치에 NAT 방화벽 뒤에 2 개의 SSH 서버가 있습니다. 그들은 항상 주어진 시간에 동일한 WAN IP 주소에 있지만 다른 포트에 있습니다.

나는이 방법으로 서버에 연결하고있다 :

ssh -p 22001 karl@x1.example.com

그리고 서버 B : :

ssh -p 22002 karl@x2.example.com

따라서 동일한 IP에 대해 2 개의 다른 호스트 키와 IP가 동일한 호스트에 대해 다른 IP를 변경할 때도됩니다.

알려진_hosts 파일에서 다른 키나 이전 키 (IP 변경의 경우)를 반복해서 삭제해야합니다.

키 확인을 끄는 것을 주저하고 있습니다. 그러나 항상 경고를받는 것도 안전하지 않습니다 (그때 항상 그러한 경고를 무시하기 때문에). 더 나은 솔루션이 있습니까?

이것은 여기서 나의 오래된 질문과 관련이 있지만 동일하지는 않습니다.

2 DNS 이름이있는 서버에 SSH 로그인 경고 메시지

도움이 되었습니까?

해결책

나는 이것이 효과가 있다고 생각한다 :

a config 당신의 파일 .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)

체크 무늬

이 플래그가 "예"로 설정된 경우 SSH (1)는 알려진_hosts 파일에서 호스트 IP 주소를 추가로 확인합니다. 이를 통해 SSH는 DNS 스푸핑으로 인해 호스트 키가 변경되었는지 여부를 감지 할 수 있습니다. 옵션이 "아니오"로 설정되면 수표가 실행되지 않습니다. 기본값은 "예"입니다.

hostkeyalias

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

그만큼 Username 그리고 Port 라인은 명령 줄에 해당 옵션을 제공하지 않아도됩니다.

% ssh server1
% ssh server2
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top