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


12

사용자가 ssh를 통해 로그인 할 수있는 서버 (IP는 abcd라고 가정 할 수 있음)가 있습니다. 이제 ip를 동일하게 유지하면서 물리적 시스템을 변경하고 싶습니다. 이처럼 사용자가 새 컴퓨터에 여전히 액세스 할 수 있도록

$ ssh abcd

문제는 한 사용자가 로그인을 시도 할 때마다 다음 ssh-key 불일치 오류가 발생한다는 것입니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
@ 경고 : 원격 호스트 식별이 변경되었습니다! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
누군가가 불쾌한 일을하고있는 것은 가능합니다!
누군가 지금 당장 도청 할 수 있습니다 (중간자 공격)!
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 번 줄을 삭제할 수 있으며 다음 번에 예 / 아니요 프롬프트가 표시됩니다. 내가 원하는 것은 사용자 가이 전체 기계 교체에 대해 알지 못하고 암호를 묻는 메시지를 표시해야한다는 것입니다.

그렇게하는 방법?


3
이것이 ssh중간 공격에서 사람에 대한 유일한 보호를 무효화 하고 의도 한 컴퓨터 대신 공격자에게 암호를 바로 보낼 수 있다는 것을 알고 있습니까? 활성 공격에 취약하다는 사실을 알지 못하면 (예 : 대상 시스템과 동일한 보안 내부 네트워크에 있음)이 ssh보안 모델을 파괴 합니다.
David Schwartz

예. 두 머신 모두 동일한 내부 네트워크에 있습니다. 사용자조차도 동일한 내부 네트워크에 있습니다. 이 상황에서 내 옵션은 무엇입니까?
Souvik Pal

그것은 충분하지 않아. 동일한 보안 내부 네트워크 에 있어야 합니다. 즉, 100 % 안전하지 않은 내부 네트워크에 연결된 장치가 없음을 100 % 신뢰해야하며 해당 장치를 제어하거나 해당 네트워크에 장치를 연결할 수있는 모든 사람을 100 % 신뢰해야합니다. 다시 말해서, 거의 모든 현실적인 시나리오에서 이것은 나쁜 생각입니다.
David Schwartz

2
완벽하게 합리적인 일입니다. 로그인 할 때 해당 오류가 발생하도록 ssh 서버 키를 HA의 다른 서버로 복제하고 있습니다. 또한 장애 조치에 대한 이메일을받습니다.
Matt H

3
매트에 동의합니다. 두 시스템과 키 소유자를 모두 제어하는 ​​경우 제어 내의 한 시스템에서 다른 시스템으로 호스트 키를 이동하는 것은 중간 공격이나 위험에 처한 사람이 아닙니다. 연결하는 사용자가 호스트 키를 신뢰하면 중요하지 않습니다.
Ross

답변:


14

으로 Ethabell가 언급 한 새 서버에 현재 호스트 키를 통해 복사 할 수 있습니다.

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, /etc/ssh/ssh_host_ecdsa_key/etc/ssh/ssh_host_rsa_keySSHD (8)는 그룹 / 세계 액세스 할 수있는 경우 파일을 사용하지 않습니다 것을 프로토콜 버전 2. 주. 여러 개의 호스트 키 파일을 가질 수 있습니다. "rsa1"키는 버전 1에 사용되고 "dsa", "ecdsa"또는 "rsa"는 SSH 프로토콜의 버전 2에 사용됩니다.


1

원래 호스트 키가있는 경우이를 복원하면 오류가 중지됩니다.

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

... 그러나 이렇게하는 것은 끔찍하고 끔찍한 생각입니다. ssh-keygen -R server.example.com클라이언트 시스템에서 방금 실행할 수있는 방법이 있다면 가장 좋은 방법입니다. 호스트 키 검사를 끄는 것은 "이봐, 저를 공격하십시오"라고 말하는 것과 같습니다. 상황이 바뀔 때 모호함을 원하지만 모호한 변경 사항보다 보안이 최우선 순위입니다.


최신 머신에서 호스트 키를 복원하는 방법에 대해 자세히 설명 할 수 있습니까?
Souvik Pal

1

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

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 호스트 키 변경 오류

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.