"경고: 원격 호스트 식별이 변경되었습니다!" 수정 방법
게시 됨: 2024-10-16- 경고 이해
- 서버의 신원 확인
- 해결 방법 1: 이전 호스트 키를 수동으로 제거(Windows, Mac, Ubuntu)
- 해결 방법 2: 전체 Known_hosts 파일 지우기(Windows, Mac, Ubuntu)
- 해결 방법 3: 일시적으로 호스트 키 확인을 무시합니다(Windows, Mac, Ubuntu)
- 해결 방법 4: 새 호스트 키를 수동으로 추가(Windows, Mac, Ubuntu)
- 해결 방법 5: DNS 또는 IP 주소 변경 사항 확인(Windows, Mac, Ubuntu)
- 향후 이 문제를 방지하기 위한 모범 사례(Windows, Mac, Ubuntu)
- 결론
SSH를 사용하여 원격 서버에 연결하려고 하면 "경고: 원격 호스트 식별이 변경되었습니다!" 라는 오류 메시지가 나타날 수 있습니다. . 이 메시지는 제3자가 서버와의 통신을 가로챌 수 있는 중간자 공격으로부터 사용자를 보호하기 위해 SSH가 사용하는 보안 기능입니다.
간단히 말해서 이 경고는 서버의 지문(로컬 시스템에 저장된 고유 식별자)이 이전에 SSH가 기록한 지문과 일치하지 않음을 알려줍니다. 서버가 다시 설치되거나 IP 주소가 변경되는 등 합법적인 변경일 수도 있지만 잠재적인 보안 위협을 나타낼 수도 있습니다. SSH는 서버의 신뢰성을 확인할 때까지 시스템을 보호하기 위해 연결을 차단합니다.
이 문서에서는 Mac , Ubuntu(Linux) 및 Windows 시스템에서 이 문제를 안전하게 해결하여 잠재적인 위험을 무시하지 않고 계속해서 안전하게 연결할 수 있는 방법을 안내합니다.
다음 내용을 읽어 보세요. 권한 거부 오류를 수정하는 방법(Publickey)
경고 이해
경고가 나타나는 이유는 무엇입니까?
SSH는 로컬 시스템의 known_hosts
라는 파일에 원격 서버 키의 지문을 저장합니다. 이 지문은 SSH를 사용할 때마다 동일한 서버에 연결하고 있는지 확인하는 데 사용됩니다. 서버의 지문이 변경되면 서버의 ID가 합법적으로 변경되었는지 또는 누군가가 연결을 가로채려고 시도하는지 확신할 수 없기 때문에 SSH는 경고를 표시합니다.
경고에 대한 일반적인 시나리오:
- 서버 재설치 또는 업그레이드: 서버가 재설치, 재설정 또는 업그레이드된 경우
known_hosts
파일에 저장된 것과 일치하지 않는 새 SSH 키가 생성될 수 있습니다. - IP 주소 변경: 서버의 IP 주소가 변경된 경우(예: 새로운 호스팅 공급자 또는 네트워크로 이동하여) SSH는 이를 의심스러운 변경으로 표시할 수 있습니다.
- DNS 변경: 서버의 DNS 레코드에 업데이트나 구성 오류가 있는 경우 SSH는 이를 다른 서버로 해석할 수 있습니다.
- 서버 구성 변경: 때때로 서버 관리자가 SSH 키 구성을 변경하여 이전 키와 일치하지 않는 새 키가 생성되는 경우가 있습니다.
- 잠재적인 보안 위협(중간자 공격): 경고는 누군가가 서버 연결을 가로채려고 한다는 신호일 수 있습니다. 변경 사항이 확실하지 않은 경우 계속하기 전에 서버의 신원을 확인하는 것이 중요합니다.
known_hosts
파일의 역할:
known_hosts
파일은 SSH가 이전에 연결한 원격 호스트에 대한 정보를 저장하는 곳입니다. 이 파일은 일반적으로 Mac 및 Ubuntu의 ~/.ssh/
디렉터리에 있으며, Windows의 PuTTY 사용자의 경우 Windows 레지스트리에 호스트 키를 저장합니다.
서버의 신원 확인
" 원격 호스트 식별이 변경되었습니다! " 문제를 해결하기 위해 변경하기 전에 ” 경고, 서버의 신원이 합법적으로 변경되었는지 확인하는 것이 중요합니다. 이 단계를 통해 중간자 공격의 희생양이 되지 않도록 할 수 있습니다.
서버의 신원을 먼저 확인해야 하는 이유
이 단계를 무시하면 손상되거나 악의적인 서버에 연결되어 데이터나 자격 증명이 위험에 빠질 수 있습니다. 항상 이 경고를 심각하게 다루십시오. 특히 서버의 최근 변경 사항이 확실하지 않은 경우에는 더욱 그렇습니다.
서버의 신원을 확인하는 단계:
- 서버 관리자에게 문의: 서버를 유지 관리하는 사람이 아닌 경우 관리자나 호스팅 공급자에게 연락하여 IP 주소 변경, 서버 재설치 또는 키 재생성과 같은 최근 변경 사항이 있는지 문의하세요.
- 호스트 키 지문 비교: 서버의 호스트 키를 수동으로 확인하려면 다음 명령을 사용하십시오.
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
출력에는
known_hosts
파일의 지문과 비교하거나 서버 관리자에게 요청할 수 있는 호스트 키 지문이 표시됩니다.
해결 방법 1: 이전 호스트 키를 수동으로 제거(Windows, Mac, Ubuntu)
Mac 및 Ubuntu(Linux)의 경우:
- 터미널을 엽니다.
- 텍스트 편집기를 사용하여
~/.ssh/known_hosts
파일을 엽니다.nano ~/.ssh/known_hosts
- 원격 서버의 호스트 이름이나 IP 주소에 해당하는 줄을 검색하세요.
- 이전 호스트 키가 포함된 줄을 삭제합니다.
- 파일을 저장하고 텍스트 편집기를 닫습니다.
- SSH를 사용하여 서버에 다시 연결합니다.
ssh <username>@<hostname>
자동 제거(Mac 및 Ubuntu):
known_hosts
파일을 수동으로 편집하는 대신 다음 명령을 사용하여 이전 호스트 키를 자동으로 제거할 수 있습니다.
ssh-keygen -R <hostname or IP>
Windows의 경우(PuTTY 사용):
- PuTTY를 엽니다.
- Windows + R을 누르고
regedit
입력한 후 Enter를 누릅니다. - 레지스트리 경로로 이동합니다.
HKEY_CURRENT_USER\Software\Myusername\PuTTY\SshHostKeys
- 원격 서버의 호스트 이름 또는 IP 주소와 관련된 항목을 찾습니다.
- 항목을 마우스 오른쪽 버튼으로 클릭하고 삭제 를 선택합니다.
- PuTTY에서 서버에 다시 연결하면 새 키를 수락하라는 메시지가 표시됩니다.
Windows의 경우(Git Bash 사용):
- Git Bash를 엽니다.
- 다음 명령을 실행하십시오.
ssh-keygen -R <hostname>
- SSH는 다음에 연결할 때 새 키를 수락하라는 메시지를 표시합니다.
해결 방법 2: 전체 known_hosts
파일 지우기(Windows, Mac, Ubuntu)
Mac 및 Ubuntu(Linux)의 경우:
- 터미널을 엽니다.
- 다음 명령을 실행하여
known_hosts
파일 전체를 제거합니다.rm ~/.ssh/known_hosts
- SSH를 사용하여 원격 서버에 다시 연결합니다.
ssh <username>@<hostname>
Windows의 경우(PuTTY 사용):
- PuTTY를 엽니다.
- Windows + R 을 누르고
regedit
입력한 다음 Enter를 눌러 레지스트리 편집기를 엽니다. - 다음으로 이동하세요:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
-
SshHostKeys
폴더를 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택합니다. 이렇게 하면 저장된 모든 호스트 키가 제거됩니다. - PuTTY를 사용하여 서버에 다시 연결하면 새 호스트 키를 수락하라는 메시지가 표시됩니다.
Windows의 경우(Git Bash 사용):
- Git Bash를 엽니다.
- 다음을 실행하여
known_hosts
파일을 제거합니다.rm ~/.ssh/known_hosts
- SSH를 사용하여 서버에 다시 연결하면 새 호스트 키를 수락하라는 메시지가 표시됩니다.
해결 방법 3: 일시적으로 호스트 키 확인을 무시합니다(Windows, Mac, Ubuntu)
서버에 빠르게 연결해야 하고 이전 호스트 키를 수동으로 제거할 시간이 없는 경우 일시적으로 호스트 키 확인을 우회할 수 있습니다. 이 방법은 긴급하게 작동하지만 잠재적인 보안 위험에 노출될 수 있으므로 일반적인 사용에는 권장되지 않습니다 .
Mac 및 Ubuntu(Linux)의 경우:
ssh -o StrictHostKeyChecking=no <username>@<hostname>
Windows의 경우(Git Bash 사용):
ssh -o StrictHostKeyChecking=no <username>@<hostname>
Windows의 경우(PuTTY 사용):
- PuTTY를 엽니다.
- 연결 > SSH > 호스트 키로 이동합니다.
- Always accept 를 선택하여 호스트 키 확인을 비활성화합니다.
- 호스트 키를 확인하지 않고 서버에 다시 연결합니다.
해결 방법 4: 새 호스트 키를 수동으로 추가(Windows, Mac, Ubuntu)
Mac 및 Ubuntu(Linux)의 경우:
ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts
Windows의 경우(Git Bash 사용):
ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts
Windows의 경우(PuTTY 사용):
불행하게도 PuTTY에는 ssh-keyscan
과 직접적으로 동등한 기능이 없습니다. 호스트 키를 수동으로 추가하려면 서버에 연결하고 PuTTY가 새 호스트 키를 묻는 메시지를 표시하도록 허용해야 합니다.
해결 방법 5: DNS 또는 IP 주소 변경 사항 확인(Windows, Mac, Ubuntu)
Mac 및 Ubuntu(Linux)의 경우:
nslookup <hostname>
dig <hostname>
Windows의 경우(Git Bash 사용):
nslookup <hostname>
dig <hostname>
Windows의 경우(PuTTY 사용):
- 명령 프롬프트 또는 PowerShell을 엽니다.
- DNS 또는 IP 주소를 확인하려면 다음 명령을 사용하십시오.
nslookup <hostname>
- 출력의 IP 주소를 PuTTY가 레지스트리에 표시하는 것과 비교하십시오.
- IP 주소가 변경된 경우 다음으로 이동하여 PuTTY 레지스트리에서 이전 호스트 키를 삭제합니다.
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
- PuTTY를 통해 다시 연결하면 새 키를 수락하라는 메시지가 표시됩니다.
향후 이 문제를 방지하기 위한 모범 사례(Windows, Mac, Ubuntu)
- 고정 IP 주소 사용: 경고를 유발할 수 있는 예기치 않은 변경을 방지하려면 고정 IP 주소로 서버를 구성하십시오.
-
known_hosts
정기적으로 정리 또는 업데이트 : 오래되었거나 사용되지 않는 호스트 키를 정기적으로 검토하고 정리합니다. - SSH 인증서 사용 고려: 확장 가능한 호스트 키 관리를 위해 SSH 인증서를 사용하면 이 경고가 발생할 가능성이 줄어듭니다.
- DNS 또는 IP 변경 사항 모니터링: DNS 레코드 또는 IP 주소의 변경 사항을 감시하고 그에 따라
known_hosts
업데이트합니다.
결론
"원격 호스트 식별이 변경되었습니다!" 경고는 원격 서버의 신원을 확인하여 무단 액세스를 방지하는 SSH의 필수 보안 기능입니다. 놀랄 수도 있지만 변경을 진행하기 전에 서버의 신원을 확인하는 데 필요한 단계를 수행하는 것이 중요합니다.
이 문서에 설명된 솔루션을 사용하면 Windows , Mac 또는 Ubuntu를 사용하는 경우 경고를 안전하게 해결할 수 있습니다. 항상 서버의 신뢰성을 먼저 확인한 다음 이전 호스트 키 제거, known_hosts
파일 지우기, 일시적으로 검사 우회 등 상황에 가장 적합한 솔루션을 선택하십시오.
또한 고정 IP 주소 사용, known_hosts
정기적 업데이트, SSH 인증서 고려 등의 모범 사례를 따르면 향후 이 문제의 발생을 최소화하는 데 도움이 될 수 있습니다.
Codeless의 공동 창립자 중 한 사람으로서 저는 WordPress 및 웹 애플리케이션 개발에 대한 전문 지식은 물론 호스팅 및 서버를 효과적으로 관리한 실적도 공개합니다. 지식 습득에 대한 나의 열정과 새로운 기술을 구축하고 테스트하려는 열정은 나를 끊임없이 혁신하고 발전시키는 원동력입니다.
전문적 지식:
웹 개발,
웹디자인,
리눅스 시스템 관리,
SEO
경험:
Specular, Tower 및 Folie와 같은 가장 인기 있는 WordPress 테마를 개발 및 디자인하여 웹 개발 분야에서 15년의 경험을 쌓았습니다.
교육:
저는 공학 물리학 학위를 취득했고 재료 과학 및 광전자 분야에서 MSC 학위를 받았습니다.
트위터, 링크드인