SSH - port 22: Connection Refused 해결 방법

푸르늬 (popodaddy)·2023년 12월 21일

SSH

목록 보기
1/1
post-thumbnail

개요

Windows에서 Linux로 파일을 보내거나, Linux 서버나 클라우드상의 가상 서버, VPS에 Remote로 접속하고 싶을 때, 보통, SSH프로토콜을 이용하여 해결하는 것이 편리합니다. 이 SSH프로토콜을 이용하려면, Linux OS에 SSH-server를 설치해 줄 필요가 있습니다.

SSH프로토콜은, 암호화 통신을 이용하여 데이터의 교환을 보호하기 때문에, 보안이 중시되는 분야에서 널리 이용되고 있습니다.

문제 파악

하지만, 갓 설치한 Ubuntu OS에서는 SSH를 통한 연결이 잘 되어지지 않는 경우가 종종 있습니다.
이유는 UbuntuOS에 SSH-server가 인스톨 되어있지 않기 때문인데, Windows OS에서 갓 설치한 Ubuntu OS로 SSH를 사용할 경우, Error가 "Connection Refused"로 뜨다보니 다들 포트포워딩이나 방화벽문제로 혼동하는 경우가 많습니다.

물론, 진짜 포트포워딩이나 방화벽 문제일 수도 있지만, 새로 설치한 Ubuntu거나, SSH-server를 설치한 기억이 없다면, 우선은 아래와 같이 SSH-server를 설치 해보시는 것을 추천드립니다.

해결 방법

Ubuntu에 기본적으로 사용 가능한 소프트웨어 repository를 사용하여 SSH 서버 소프트웨어를 설치합니다.

sudo apt-get install openssh-server

하지만, Ubuntu에서 아래와 같은 메세지가 뜨면서 설치 할 수 없다고 나온다면...

E: Package 'openssh-server' has no installation candidate

단순히 "Package list"가 갱신되어있지 않아서 (최신 버전이 아니라서) 인스톨에 실패했을 가능성이 심히 높습니다.

그러므로 우선은,

sudo apt-get update
sudo apt-get install openssh-server

로 먼저 패키지 리스트를 update 해주고, 그 뒤에 다시 한 번, openssh-server를 인스톨 해보시는 것을 추천드립니다.
그러면, 거짓말처럼 openssh-server가 인스톨되는 것을 확인할 수 있을지도 모릅니다.


포트 확인

openssh-server 인스톨이 완료되었다면, 이미 작동하고 있는 상태이기 때문에, 우선 정상적으로 데몬이 작동하는지 확인하기 위해 아래 커맨드를 입력해주세요.

netstat -ntl

정상적으로 설치가 완료됐을 경우, 22번 포트가 열려있다는 것을 확인 할 수 있습니다.


작동 상태 확인 및 openssh-server의 버전 확인

#작동 상태 확인
sudo systemctl status ssh

Activate: active (running) 이라고 나오네요.


#openssh-server의 버전 확인
ssh -V

그러면, 이제부터는 SSH프로토콜을 사용하여 Remote로 Linux에 접속하는 것도, SCP를 사용하여 Windows에서 Linux로 파일을 전송하는 것도 할 수 있게 되었다고 볼 수 있습니다.

물론, SSH-server를 설치한 직후는, Security가 약한 상태이기도 하기 때문에, SSH의 config를 변경하여 포트를 변경(디폴트 22) 하거나, 패스워드를 강화하는 방법들이 있기는 하지만, 그건 다음 기회에 설명할 수 있도록 하겠습니다.

결론

SSH프로토콜을 이용하려면 SSH-server의 인스톨이 필요하다. (당연한 말...)

profile
잡다하게 이것저것 공부하는 머신러닝 엔지니어 :)

0개의 댓글