한 서버에서 다른 서버로 SSH 키 복사

한 서버에서 다른 서버로 SSH 키 복사

사용자가 SSH를 통해 로그인할 수 있는 서버가 있습니다(IP가 abcd라고 가정). 이제 IP를 동일하게 유지하는 물리적 시스템을 변경하고 싶습니다. 따라서 이와 같은 사용자가 새 시스템에 계속 액세스할 수 있습니다.

$ssh ABCD

문제는 한 사용자가 로그인을 시도할 때마다 다음과 같은 SSH 키 불일치 오류가 발생한다는 것입니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
@ 경고: 원격 호스트 식별이 변경되었습니다! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
누군가가 불쾌한 일을 하고 있을 가능성이 있습니다!
누군가 지금 당신을 도청하고 있을 수도 있습니다(중간자 공격)!
RSA 호스트 키가 방금 변경되었을 수도 있습니다.
원격 호스트가 보낸 RSA 키의 지문은 다음과 같습니다.
02:dc:c6:18:1b:34:b7:1d:fa:90:ab:e1:95:48:69:84.
시스템 관리자에게 문의하세요.
이 메시지를 제거하려면 /home/user/.ssh/known_hosts에 올바른 호스트 키를 추가하세요.
/home/user/.ssh/known_hosts:37의 위반 키
동문의 RSA 호스트 키가 변경되어 엄격한 확인을 요청하셨습니다.
호스트 키 확인에 실패했습니다.

나는 사용자가 ~/.ssh/known_hosts 파일에서 37번 줄을 삭제할 수 있고 다음에 예/아니오 프롬프트를 받게 될 것이라는 것을 알고 있습니다. 내가 원하는 것은 사용자가 이 전체 시스템 교체 작업을 인식하지 못하게 하고 비밀번호를 묻는 메시지만 받는 것입니다.

그렇게하는 방법?

답변1

처럼에타벨언급한 대로 현재 호스트 키를 새 서버에 복사할 수 있습니다.

파일 을 열어 호스트 키를 찾을 수 있습니다 sshd_config(내 Ubuntu 12.04 상자에서는 /etc/ssh/sshd_config). 구성 파일에서 항목을 찾습니다 HostKey. 이 항목은 호스트 키 파일의 위치를 ​​알려줍니다. 이러한 파일을 새 서버에 복사하고 sshd_config복사된 키를 가리키도록 새 서버를 업데이트하거나 새 서버에 이미 존재하는 파일을 덮어쓸 수 있어야 합니다 .

또한 sshd_config매뉴얼 페이지에서 이 섹션, 특히 권한에 대한 부분을 참고하세요.

SSH에서 사용하는 개인 호스트 키가 포함된 파일을 지정합니다. 기본값은 /etc/ssh/ssh_host_key프로토콜 버전 1, /etc/ssh/ssh_host_dsa_key및 프로토콜 버전 2 /etc/ssh/ssh_host_ecdsa_key입니다 /etc/ssh/ssh_host_rsa_key. sshd(8)는 그룹/전 세계 액세스가 가능한 파일의 사용을 거부한다는 점에 유의하십시오. 여러 개의 호스트 키 파일을 가질 수 있습니다. "rsa1" 키는 버전 1에 사용되고 "dsa", "ecdsa" 또는 "rsa"는 SSH 프로토콜 버전 2에 사용됩니다.

답변2

원래 호스트 키가 있는 경우 복원할 수 있으며 이렇게 하면 오류가 중지됩니다.

또는 sshd 구성 파일에서 StrictHostKeyChecking을 끌 수 있습니다.

... 그러나 이렇게 하는 것은 끔찍하고 끔찍한 생각입니다. 클라이언트 컴퓨터에서 바로 실행할 수 있는 방법이 있다면 ssh-keygen -R server.example.com그것이 가장 좋은 방법이 될 것입니다. 왜냐하면 호스트 키 확인을 끄는 것은 "이봐, 나를 공격해"라고 말하는 것과 같기 때문입니다. 상황이 변하면 모호한 것을 원하게 되지만, 모호한 변화보다 보안이 최우선 순위가 되어야 합니다.

답변3

이렇게 시도해 볼 수 있습니다

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"' 

.ssh 폴더가 아직 존재하지 않으면 위 명령이 실패합니다. 또한 파일을 생성할 때 가능한 최소 권한(기본적으로 소유자만 읽기/쓰기)을 설정하는 것이 더 나을 수 있습니다. 다음은 좀 더 고급 명령입니다.

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'

이 문제에 대해 더 자세히 알아보려면 다음 웹사이트를 방문해 보세요.SSH 호스트 키 변경 오류

관련 정보