클라우드에 VPS가 있습니다(Ubuntu Server 16.04).
- SSH를 통해 서버에 연결합니다(문제 없음).
- 소프트웨어를 업데이트합니다.
apt upgrade
+apt update
- 서버를 다시 시작했습니다:
shutdown -r now
. SSH 연결이 닫혔습니다. - 20초 후 다시 연결하려고 하면 SSH가 다음과 같이 말합니다.
ECDSA host key for <server> has changed and you have requested strict checking.
이렇게 서버를 업데이트한 것이 처음은 아니지만, 키가 바뀌는 모습은 처음 봤습니다. 이게 정상인가요?
업데이트에는 새로운 버전의 libssl 및 openssl이 포함되어 있습니다. 이것이 이유일까요?
답변1
find /etc -name '*ssh*' -ls
표시되는 유일한 최신 파일은 다양한 SSH 키입니다(서버 재시작이 끝나면 모두 변경됨).
/var/log/syslog를 살펴보면 다음 줄을 발견했습니다.
Sep 29 20:56:20 <server> cloud-init[1245]: Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Sep 29 20:56:20 <server> cloud-init[1245]: Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
Sep 29 20:56:20 <server> cloud-init[1245]: Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Sep 29 20:56:20 <server> cloud-init[1245]: Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
Sep 29 20:56:20 <server> cloud-init[1245]: Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key.
Sep 29 20:56:20 <server> cloud-init[1245]: Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub.
Sep 29 20:56:20 <server> cloud-init[1245]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
Sep 29 20:56:20 <server> cloud-init[1245]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
다른 메시지의 내용으로 판단하면 이 cloud-init
문제는 내 호스팅 서비스에서 발생하는 것으로 보이므로 업그레이드가 아닌 재부팅으로 인한 것일 가능성이 높습니다. 지원팀과 채팅하겠습니다.
답변2
SSH 구성이나 호스트 키를 직접 변경하지 않은 경우 다음 중 하나가 될 수 있습니다.
- 고객이 키를 변경했습니다(소프트웨어를 다시 설치하거나 수동으로).
- 서버가 키를 변경했습니다(소프트웨어 재설치 또는 수동).
그럼 각 운영체제별 키 수정 날짜를 보고 누가 수정했는지 확인해보세요
앞으로 이런 일이 발생하지 않도록 하려면 시스템 업그레이드 중에 기존 SSH 호스트 키를 유지하고 업그레이드 후에는 이전 키를 사용하십시오.
답변3
적어도 프로토콜 버전 1을 사용할 때는 이전에 이것을 본 적이 없다는 것이 조금 이상합니다.
프로토콜 1에 대한 순방향 보안은 서버가 시작될 때 생성되는 추가 서버 키(일반적으로 768비트)를 통해 제공됩니다.
(에서 인용 man sshd
)