최말짱 블로그

[vscode] (서버에) 연결할 수 없음: 원격 호스트 키가 변경되었으며 포트 전달이 비활성화되었습니다. 오류 해결 본문

에러정리

[vscode] (서버에) 연결할 수 없음: 원격 호스트 키가 변경되었으며 포트 전달이 비활성화되었습니다. 오류 해결

최말짱 2025. 2. 11. 14:33
728x90

 

 

최근 vscode를 통해 원격 서버에 SSH로 접속하려고 할 때 아래와 같은 오류 메시지가 발생했습니다.

연결할 수 없음: 원격 호스트 키가 변경되었으며 포트 전달이 비활성화되었습니다.

문제 상황

처음에는 서버의 호스트 키 문제로 생각하여 ssh-keygen -R "example.server" 명령어를 실행했지만,

Host example.server not found in /Users/사용자명/.ssh/known_hosts

라는 메시지가 뜨면서 제대로 삭제되지 않았습니다.

그래서 포트 10022로 접속을 시도하던 중 네트워크가 정상인지 우선 확인하기 위해 아래와 같이 실행했습니다.

nc -vz example.server 10022

결과: Connection to example.server port 10022 [tcp/*] succeeded!

 

네트워크 연결에는 문제가 없었으므로, 문제는 known_hosts 파일에 저장된 호스트 키 형식에 있었습니다.

문제 원인

SSH는 기본 포트(22번) 외의 포트를 사용하는 경우, known_hosts 파일에 호스트 정보를 [호스트]:포트 형식으로 저장합니다.

포트 번호를 포함한 형식([example.server]:port번호)으로 지정하여 known_hosts 파일의 해당 엔트리를 삭제합니다.

ssh-keygen -R "[example.server]:10022"

# 10022 -> 포트번호

 

이 명령어는 ~/.ssh/known_hosts 파일 내에 [example.server]:10022 형식으로 저장된 항목을 찾아 삭제합니다.

2. 수동으로 known_hosts 파일 수정

만약 위 명령어로 해결되지 않는다면, 수동으로 파일을 편집하여 해당 줄을 삭제할 수 있습니다.

1. 파일 열기:

nano ~/.ssh/known_hosts

 

2. [example.server]:10022로 시작하는 줄을 찾아 삭제합니다.

3. 저장 및 종료:

     저장: Ctrl + O → Enter

     종료: Ctrl + X

최종 확인

위 방법으로 문제 항목을 삭제한 후, 아래와 같이 다시 SSH 접속을 시도했더니 정상적으로 연결되었습니다.

ssh 계정이름@example.server -p 10022

 


 

 

SSH 접속 시 비표준 포트를 사용하는 경우, known_hosts 파일에 [서버주소]:포트 형식으로 저장되므로
ssh-keygen -R "[서버주소]:포트" 명령어를 사용해야 합니다.
이 방식으로 호스트 키를 정확히 삭제할 수 있으며, 만약 명령어로 해결되지 않으면 수동으로 파일을 수정하는 방법도 유용합니다.

 

이상으로 vscode에서 발생한 SSH 연결 오류 해결 방법을 공유해 보았습니다.
여러분의 환경에서도 도움이 되길 바랍니다..!!