해결 방법: 포트 22 Debian/Ubuntu에서 연결이 거부됨

How Fix Connection Refused Port 22 Debian Ubuntu



SSH는 Linux 서버에 액세스하고 관리하는 안전한 방법을 제공합니다. 때때로 SSH 서버에 연결하는 동안 사용자는 포트 22에서 연결 거부 오류가 발생하는 경우가 있습니다. SSH 서비스가 실행되지 않거나 포트가 방화벽에 의해 차단되거나 서버가 다른 포트를 사용하는 등 여러 가지 이유로 인해 발생합니다. IP 충돌 문제로 인해 발생할 수도 있습니다. 이 기사에서는 오류를 수정하기 위해 시도해야 하는 몇 가지 솔루션에 대해 설명합니다.

메모: 여기에서 설명하는 명령은 Ubuntu 20.04 LTS에서 테스트되었습니다. 동일한 명령이 데비안 시스템에도 유효합니다.







연결 거부 오류 수정

이것은 SSH를 통해 원격 시스템에 연결하는 동안 발생할 수 있는 연결 거부 오류입니다.





연결 거부 오류를 해결하려면 아래 솔루션을 단계별로 따르십시오.





OpenSSH가 설치되어 있는지 확인

연결 거부 오류가 표시되는 이유 중 하나는 대상 서버에 OpenSSH 서버가 설치되어 있지 않기 때문입니다.

먼저 SSH를 통해 액세스하려는 시스템에 OpenSSH 서버가 설치되어 있는지 확인해야 합니다. OpenSSH가 설치되어 있는지 확인하려면 Target 서버의 터미널에서 다음 명령을 실행하십시오.



$수도적절한 목록--설치 | 꽉 붙잡음openssh-서버

이 명령은 기본적으로 설치된 패키지 목록에서 openssh-server라는 용어를 필터링합니다. 다음과 유사한 출력을 받으면 OpenSSH 서버가 설치되었음을 나타냅니다. 반면에 출력이 없으면 대상 서버에 OpenSSH가 없음을 의미합니다.

대상 서버에 설치되어 있지 않은 경우 sudo로 다음 명령을 사용하여 설치할 수 있습니다.

$수도적절한설치openssh-서버

그런 다음 sudo 암호를 입력하고 확인을 묻는 메시지가 표시되면 'y'를 누릅니다. 설치가 완료되면 동일한 명령을 사용하여 확인하십시오.

$수도적절한 목록--설치 | 꽉 붙잡음openssh-서버

SSH 서비스 확인

OpenSSH 서비스는 백그라운드에서 실행되고 들어오는 연결을 수신합니다. 중지된 OpenSSH 서비스는 연결 거부 오류를 수신하는 이유 중 하나일 수 있습니다.

따라서 터미널에서 다음 명령을 사용하여 OpenSSH 서비스가 실행되고 있는지 확인해야 합니다.

$수도서비스SSH상태

다음 출력이 표시되면 서비스가 활성 상태이고 백그라운드에서 실행 중임을 의미합니다.

반면에 받는 경우 비활성(죽은), 서비스가 실행되고 있지 않음을 의미합니다. . 터미널에서 sudo로 다음 명령을 사용하여 OpenSSH 서비스를 실행할 수 있습니다.

$수도서비스SSH시작

서비스를 다시 시작하려면 다음 명령을 사용하십시오.

$수도서비스SSH재시작

SSH 서버 수신 포트 확인

연결 거부 오류가 수신되는 또 다른 이유는 잘못된 포트에 연결하려고 하기 때문입니다. 예를 들어 서버가 포트 2244에서 수신 대기하도록 구성되어 있고 기본 포트 22에 연결하려고 하면 이 경우 연결 거부 오류가 수신됩니다.

연결을 시도하기 전에 SSH 서버 수신 포트를 확인해야 합니다. 기본 포트(22)인 경우 다음 명령을 사용하여 연결할 수 있습니다.

$SSH [사용자 이름]@[원격 서버 IP 또는호스트 이름]

기본 포트가 아닌 다른 포트인 경우 이 포트를 사용하여 SSH 서버에 연결해야 합니다.

$SSH -NS [포트 번호] [사용자 이름]@[IP 주소]

OpenSSH 서버가 어느 포트에서 수신 대기하는지 확인하려면; 터미널에서 다음 명령을 사용하십시오.

$수도 netstat -ltnp | 꽉 붙잡음SSHD

다음과 유사한 출력을 받게 됩니다.

세 번째 열에서 서버 수신 포트가 2244임을 알 수 있습니다. 이 경우 이 포트를 사용하여 SSH 서버에 연결해야 합니다.

$SSH -NS [2244] [사용자 이름]@[IP 주소]

방화벽에서 SSH 허용

SSH 포트를 차단하는 방화벽은 연결 거부 오류의 또 다른 주요 원인이 될 수 있습니다. 방화벽이 SSH 서버에서 실행 중인 경우 다음 명령을 사용하여 SSH 포트를 허용해야 합니다. 교체 포트 SSH 서버가 수신하는 포트 번호:

$수도ufw 포트 허용/TCP

예를 들어 SSH 서버가 포트 2244를 수신하는 경우 방화벽에서 다음과 같이 허용할 수 있습니다.

$수도ufw 허용2244/TCP

다음 명령을 사용하여 방화벽을 다시 로드합니다.

$수도ufw 새로고침

규칙이 추가되었는지 확인하려면 터미널에서 다음 명령을 사용하여 방화벽 상태를 확인하십시오.

$수도ufw 상태

다음 출력은 포트 2244가 방화벽에서 허용됨을 보여줍니다.

중복 IP 주소 충돌 해결

연결 거부 오류는 중복 IP 주소 충돌로 인해 발생할 수도 있습니다. 따라서 시스템에 중복 IP 주소가 없는지 확인하십시오.

다음 명령을 사용하여 시스템에 arping 유틸리티를 설치합니다.

$수도적절한설치아르핑

그런 다음 SSH 서버의 IP 주소를 ping합니다.

$ <IP 주소>

출력에서 둘 이상의 MAC 주소에서 응답이 표시되면 시스템에서 실행 중인 중복 IP가 있음을 나타냅니다. 이 경우 SSH 서버의 IP 주소를 변경하고 새 IP 주소로 다시 연결을 시도하십시오.

이것은 Linux 시스템에서 포트 22에 의한 연결 거부 오류를 수정하는 방법입니다. 이 기사에서는 연결 거부 오류를 해결하는 데 확실히 도움이 될 몇 가지 방법을 설명했습니다.