Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

ssh_exchange_identification: read: Connection reset by peer 오류 해결 방법

```html

다행히도 ssh_exchange_identification: read: Connection reset by peer 오류는 자주 발생하는 편은 아니지만, Unix 계열 서버에 SSH로 접속하려는 누구에게나 나타날 수 있습니다. Windows에서 cygwin을 통해 Ubuntu에 접속하든, macOS 터미널로 Arch, Fedora 또는 CentOS에 접속하든 상관없습니다. SSH는 Unix와 Linux 전반에서 보편적으로 사용되기 때문에, 원격 서버가 허가 없이 연결을 재설정하면 언제든 이 오류가 발생할 수 있습니다.

방법 1: hosts.deny 파일 확인하기

서버에 관리자 권한이 있고 직접 접근할 수 있는 방법이 있다면, 가장 손쉬운 해결 방법은 서버에 직접 로그인한 콘솔에서 hosts.deny 파일을 열어보는 것입니다.

서버에서 다음 명령어를 입력하여 본인의 머신이 어떤 이유로든 차단 목록에 등록되어 있는지 확인합니다.

cat /etc/hosts.deny
ssh_exchange_identification: read: Connection reset by peer 오류 해결 방법

목록에 본인의 IP나 호스트명이 등록되어 있다면 대부분 실수로 인한 것이므로 해당 줄을 안전하게 삭제한 뒤, 다른 머신에서 SSH로 다시 접속하면 됩니다. 등록되어 있지 않다면, 접속을 막는 특이한 와일드카드 규칙이 없는지도 함께 살펴보세요. 다만 배포판이 기본적으로 넣어둔 주석 텍스트만 있는 깨끗한 파일이라면 대부분의 경우 원인이 아닙니다.

ssh_exchange_identification: read: Connection reset by peer 오류 해결 방법

원격 로그인을 허용 목록에 직접 추가해 연결을 보장하고 싶다면 다음과 같이 hosts.allow 파일을 편집합니다.

sudo vi /etc/hosts.allow
ssh_exchange_identification: read: Connection reset by peer 오류 해결 방법

이 작업은 거의 필요하지 않지만, 추가할 경우에는 배포판이 제공하는 안내 문구를 반드시 따라야 합니다. 예를 들어 파일 맨 아래에 ALL: appuals.com이라는 줄을 추가하면 appuals.com 도메인의 모든 사용자가 서버에 접속할 수 있게 됩니다. 이때 호스트명을 정확하게 입력해야 하며, Ctrl+O로 파일을 저장하고 Ctrl+X로 편집기를 종료합니다(nano 기준).

여기까지 완료했다면 이제 정상적으로 서버에 SSH 접속이 가능할 것입니다.

방법 2: SSH 설정 옵션 변경하기

원격 서버에 접근할 수 없거나 앞선 방법으로 해결되지 않았다면, 기존 SSH 설정 파일을 정리한 후 업데이트를 진행하고 다시 시도해 보세요. 그래도 문제가 해결되지 않으면 ssh 명령어에 -v 옵션을 붙여 상세 로그와 함께 접속을 시도합니다. 여전히 오류 메시지가 나타난다면 이번에는 -c aes256-ctr 옵션을 추가해 보세요.

ssh -c aes256-ctr user@서버주소

이 옵션은 암호화 알고리즘(cipher) 목록을 짧게 줄여 패킷 크기를 줄여 주기 때문에, 접속하려던 서버에 정상적으로 연결될 수 있습니다. 일부 사용자들은 Cisco 브랜드 장비를 문제 해결할 때 이 방법이 특히 유용하다고 보고했습니다. 일부 서버 하드웨어는 기본적으로 더 작은 패킷 크기를 요구하기 때문입니다. 평소 사용하던 ssh 명령어에 -c aes256-ctr만 추가하면 접속할 수 있을 것입니다.

방법 3: 실수로 인한 IP 차단 해제하기

로그인을 몇 번 시도했다가 거부당한 적이 있다면, 서버가 본인을 악성 IP로 오인했을 가능성이 있습니다. 문제를 해결하면서 계속 접속을 재시도하는 것은 당연한 반응이지만, fail2ban 같은 보안 모듈에는 공격처럼 보일 수 있습니다. 이 경우를 배제하려면 원격 연결에서 다음 명령어를 실행하고 본인의 IP 주소를 찾아보세요.

sudo iptables -L --line-number
ssh_exchange_identification: read: Connection reset by peer 오류 해결 방법

출력 결과에는 관련 없는 연결 항목들이 여러 개 보일 수 있지만 무시해도 됩니다. 문제가 되는 항목을 찾았다면 iptables -D 명령어 뒤에 해당 체인(chain) 이름과 체인 번호를 붙여 실행하면, 본인 소프트웨어에 의해 다시 차단되는 일을 막을 수 있습니다.

iptables -D INPUT 1

그래도 문제가 지속된다면 fail2ban 설정 파일을 직접 수정해야 합니다.

ssh_exchange_identification: read: Connection reset by peer 오류 해결 방법

익숙한 텍스트 편집기(대부분 nano 또는 vi)로 root 권한을 사용해 파일을 열고, 다음과 같이 jail.conf 파일을 불러온 뒤 ignoreip 항목을 찾습니다.

sudo nano /etc/fail2ban/jail.conf
ssh_exchange_identification: read: Connection reset by peer 오류 해결 방법

이 ignoreip 줄에 본인의 IP 주소를 추가하면 fail2ban이 해당 IP를 영구적으로 차단 목록에 넣지 못하게 됩니다.

Linux 배포판마다 동작 방식은 조금씩 다르지만, 대부분의 경우 이러한 변경 사항은 즉시 적용됩니다.