
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
각 주소가 Host
IP로 확인되는지 여부를 지정할 필요가 없습니다 . 바라보다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 파일을 변경할 수 있습니다.