SSH(Secure Shell)는 네트워크 상에서 안전하게 원격으로 다른 컴퓨터에 로그인하거나 명령을 실행할 수 있게 해주는 프로토콜이다. SSH 서버를 설치하면 외부에서 안전하게 원격으로 접속하여 파일을 전송하거나 명령을 실행 할 수 있다. SSH는 데이터 전송 과정에서 암호화를 지원하여 보안성을 유지한다. 이 글에서는 Ubuntu 24.04에서 SSH 서버를 설치하고 구성하는 방법에 대해 알아본다.
SSH 서버 설치 방법
Step 1: 시스템 저장소 업데이트
먼저 시스템 패키지를 최신 상태로 업데이트한다.
sudo apt update && sudo apt upgrade
Step 2: SSH 서버 설치
SSH 서버 패키지인 openssh-server
를 설치한다.
sudo apt install openssh-server -y
Step 3: SSH 서버 활성화
SSH 서버를 설치했으면, SSH 서버가 활성화되어 있는지 확인한다.
sudo systemctl status ssh

SSH 서버가 비활성화(disable) 되어 있으면 활성화(enable) 한다.
sudo systemctl enable ssh
Step 4: SSH 서버 시작
SSH 서버를 활성화 했으면 SSH 서비스를 시작한다.
sudo systemctl start ssh
만약 SSH 서버를 즉시 활성화하고 시작하려면, 아래와 같이 수행하면 된다.
sudo systemctl enable --now ssh
Step 5: SSH 서버 설치 확인
sudo systemctl status ssh

Step 6: 방화벽 설정
방화벽을 활성화 하고, SSH 연결을 허용하도록 한다.
sudo ufw enable
sudo ufw allow ssh
Step 7: 방화벽 상태 확인
방화벽이 실행 중이고, SSH 서버로 트래픽을 전달하는지 상태(status)를 확인한다. SSH 서비스의 디폴트 포트번호는 22번이다.
sudo ufw status

SSH 서버 구성
SSH 서버 구성은 sshd_config
파일에 저장된다. 편집기를 사용하여 sshd_config
파일을 수정하여 새로운 SSH 서버 구성을 진행할 것이므로, 현재 버전 sshd_config
파일은 백업해 둔다.
sudo cp -v /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
Port 변경
SSH 기본 포트는 22이다. 이 값을 보아 안전한 포트 번호로 바꾸면 좀 더 안전한 환경에서 SSH 원격 접속을 할 수 있다.
sshd_config
파일에서 주석 처리된 Port
를 수정하여 원하는 포트번호로 수정한다.

비밀번호 인증 모드 변경
비밀번호 인증 모드를 더 안전한 모드로 변경하려면 주석 처리 되어 있는 PubkeyAuthentication
에 Yes값을 지정한다.
Root 로그인 제한
일반적으로 Root 접속을 권한하지 않는다. Root의 외부 접속을 불가능하게 하려면 PermitRootLogin
주석처리를 풀고, no 값을 지정한다.
인증 시도 횟수 제한
최대 인증수를 설정하려면 MaxAuthTries
주석을 풀고 횟수를 지정한다.

새구성으로 SSH 서비스 재시작
sshd_config
파일을 수정했으면 새롭게 구성된 설정으로 SSH 서비시를 다시 시작해야 한다.
sudo systemctl restart ssh
SSH를 사용하여 서버에 연결하기
SSH 서비스가 시작했으면 local과 remote(원격)에서 접속하여 잘 동작하는지 확인한다.
ubuntu 호스트에서 localhost로 접속
아래와 같이 ssh 명령어로 localhost 에서 ssh로 접속해본다.
ssh username@localshot

Windows(client)에서 putty로 연결
client에 대표 터미널 프로그램인 Putty를 설치하고 아래와 같이 Ubuntu 머신 IP로 SSH 접속을 시도해 본다.

“Accept”를 선택하면 원력 접속이 된다.

사용자 계정으로 로그인하면 아래와 같이 SSH 터미널 접속이 된다.
