서버 측에서

서버 측에서

ssh클라이언트(기본적으로 최소한 Ubuntu 18.04 및 FreeBSD 12에서는)는 항상 서버의 키 지문이 파일에 있는지 확인합니다 known_hosts.

이중 부팅 기능을 갖춘 LAN에 호스트가 있습니다. 두 OS 모두 동일한 고정 IP를 사용합니다. 연결 ssh하고 싶어요둘 다그 중에는 오류가 발생하지 않았습니다.

이는 분명히 실행 시 확인을 위반합니다 known_hosts. 지문을 수락하면 OS가 전환될 때 호스트 IP와 관련되며 IP는 동일하지만 known_hosts다시 연결하려면 수동으로 삭제해야 합니다. . 그 지문을 원해요또는또 다른 하나는 IP를 고려할 때 승인되었습니다.

당신은 가지고 있습니까?고객이 문제에 대한 해결책은 무엇입니까?

나는 OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018및 을 사용하고 있습니다 OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017.

노트: 서버의 지문을 "확인"하고 싶지 않습니다. 두 개의 대체 지문(한 개가 아닌)을 서버의 IP 주소와 연결할 수 있는지 궁금합니다.

답변1

문제는 호스트 키가 바로 호스트의 키라는 것입니다. 실제로는 호스트당 하나만 있어야 합니다. 물론 키 유형이 많기 때문에 그 수도 많지만 단일 호스트에 허용되는 여러 키를 제공하기 위해 키 유형에 의존하는 것은 피하고 싶습니다.

서버 측에서

첫 번째 제안은 클라이언트 측에서 이 작업을 정말로 수행하려면 신중하게 생각하라는 것입니다. 한 운영 체제에서 다른 운영 체제로 호스트 키를 복사하기만 하면 두 운영 체제를 동일한 호스트로 처리할 수 있습니다.

OpenSSH에서 복사한 경우 /etc/ssh/ssh_host*다른 운영 체제에서도 사용할 수 있습니다. 실행 중인 SSH 서버에 따라 일부 재포맷이 필요할 수도 있습니다.


하지만...

서버 측 솔루션을 제외하신 이유를 물어봐도 될까요? 가장 쉬운 방법은 두 운영 체제에서 동일한 호스트 키를 사용하도록 하는 것이 아닐까요? ——필립 쿨린

@PhilipCouling 부분적으로는 사용 편의성을 위해 운영 체제 중 하나가 Windows입니다. 그 이유 중 하나는 한 호스트에서 다른 호스트로 키를 전송하지 않는 것인데, 이는 때때로 권장되지 않는 관행입니다. 그러나 주된 이유는 이것이다: 가능하다면 SSH 클라이언트 구성에 어느 정도 유연성이 있기를 원합니다. – 보우 파크

두 운영 체제가 IP와 포트 번호를 공유하더라도 서로 다른 호스트로 처리하는 방법을 찾고 계신 것 같습니다.


클라이언트에서

아마도 가장 안정적인 방법은 각 운영 체제에 대해 호스트별 구성을 설정하는 것입니다. ~/.ssh/config추가하려면 편집(또는 생성)하세요 :

Host windows.dualbootbox
    Hostname 192.168.10.20
    UserKnownHostsFile ~/.ssh/windows.dualbootbox.known_hosts

Host ubuntu.dualbootbox
    Hostname 192.168.10.20
    UserKnownHostsFile ~/.ssh/ubuntu.dualbootbox.known_hosts

Hostname각 주소가 HostIP로 확인되는지 여부를 지정할 필요가 없습니다 . 바라보다man ssh_config구성 옵션에 대해 자세히 알아보세요.

위 구성을 사용하면 다음을 수행할 수 있습니다.

ssh [email protected]
ssh [email protected]

답변2

이를 수행하는 방법은 여러 가지가 있습니다. 한 가지 방법은 StrictHostKeyChecking no호스트에 SSH로 접속할 때 사용하는 것입니다. 그러면 Known_hosts에 항목이 생성되지 않습니다.

ssh -o StrictHostKeyChecking=no <ip>

또는

ssh -o UserKnownHostsFile=/dev/null <ip>

또는 필요에 따라 .ssh/config 파일을 변경할 수 있습니다.

관련 정보