1.시스템&인프라/Ubuntu

12. Ubuntu에서 SSH 서버 설치 및 보안 설정

쿼드큐브 2025. 3. 30. 08:00
728x90

Ubuntu에서 SSH 서버 설치부터 보안 설정까지 전체 과정을 설명합니다. 비밀번호 로그인 차단, 포트 변경, 사용자 제한 등 보안 강화를 위한 설정도 포함되어 있습니다.
 

Ubuntu에서 SSH 서버 설치 및 보안 설정

 

목차

1. SSH 서버 설치 방법

2. SSH 보안 설정 기본 예시

3. sshd_config 상세 설정 설명

4. root 로그인 허용 설정(비추천)

관련 글 링크

 
 

1. SSH 서버 설치 방법

SSH(Secure Shell)는 네트워크를 통해 원격 서버에 안전하게 접속할 수 있는 프로토콜입니다.
Ubuntu에 SSH 서버를 설치하면 외부에서 원격으로 접속하고 제어할 수 있습니다.
Ubuntu에 openssh-server 패키지를 설치하면 SSH 서버가 구성됩니다.

sudo apt update
sudo apt install openssh-server -y

 
설치 후 SSH 서비스 상태를 확인합니다.

sudo systemctl status ssh

 
SSH 서비스를 수동으로 시작하거나 부팅 시 자동으로 시작되도록 설정할 수 있습니다.

# SSH 시작
sudo systemctl start ssh

# 부팅 시 자동 시작 설정
sudo systemctl enable ssh

 
 

2. SSH 보안 설정 기본 예시

보안을 강화하려면 /etc/ssh/sshd_config 파일을 수정합니다.

sudo vi /etc/ssh/sshd_config

다음 설정 예시는 SSH 보안을 강화하는 주요 항목입니다.

  • 루트 로그인 비활성화
    PermitRootLogin no
  • 비밀번호 인증 차단 (공개 키만 허용)
    PasswordAuthentication no
    PubkeyAuthentication yes
  • 기본 포트 변경 (예: 2222)
    Port 2222
  • 특정 사용자/그룹만 허용
    AllowUsers sshuser
    AllowGroups sshusers

사용자 그룹을 생성하고 사용자 추가:

sudo groupadd sshusers
sudo usermod -aG sshusers sshuser

 
설정 후 SSH를 재시작합니다.

sudo systemctl restart ssh

 
 

3. sshd_config 상세 설정 설명

# SSH 설정 파일 (/etc/ssh/sshd_config)

Include /etc/ssh/sshd_config.d/*.conf

Port 2222                  # 기본 포트 22를 2222로 변경
PermitRootLogin no         # 루트 계정 로그인 비활성화
PasswordAuthentication no  # 비밀번호 로그인 차단
PubkeyAuthentication yes   # 공개 키 인증 허용
AllowUsers myuser          # 특정 사용자만 접속 허용
MaxAuthTries 3             # 로그인 실패 최대 횟수 제한
MaxSessions 5              # 사용자당 최대 세션 수 제한
ClientAliveInterval 300    # 5분 간격으로 ping 전송
ClientAliveCountMax 3      # 응답 없으면 연결 종료
KbdInteractiveAuthentication no  # 대화형 인증 비활성화
X11Forwarding no           # X11 포워딩 비활성화
AllowTcpForwarding no      # TCP 포워딩 차단
PermitTunnel no            # 터널링 비활성화
AcceptEnv LANG LC_*        # 허용할 환경 변수
Subsystem sftp /usr/lib/openssh/sftp-server
ForceCommand internal-sftp
ChrootDirectory /home/%u   # 사용자 홈 디렉토리로 제한
PermitTTY no               # 터미널 접속 차단
Banner /etc/issue.net      # 로그인 시 배너 표시

 
 

4. root 로그인 허용 설정(비추천)

root 계정으로 접속이 꼭 필요한 경우 아래와 같이 설정합니다.
보안상 권장되지 않으며, 별도 사용자에게 sudo 권한을 부여하는 것이 안전합니다.

# root 계정에 비밀번호 설정
sudo passwd root

# sshd_config 수정
sudo vi /etc/ssh/sshd_config

PermitRootLogin yes
PasswordAuthentication yes

# SSH 재시작
sudo systemctl restart ssh

 
PermitRootLogin

설정 값 설명
PermitRootLogin yes root 계정의 SSH 로그인 허용 (비밀번호 또는 키 인증 가능)
PermitRootLogin no  root 계정의 SSH 로그인 차단
PermitRootLogin prohibit-password 비밀번호 로그인 차단, 공개 키 인증만 허용
PermitRootLogin forced-commands-only 공개 키 인증만 허용하며, 지정된 명령만 실행 가능

 


Ubuntu에서 SSH 서버를 설치하고 보안 설정을 강화하는 방법을 살펴보았습니다. 다음과 같은 보안 수칙을 함께 적용하면 더욱 안전하게 운영할 수 있습니다:

  • 반드시 포트 변경 및 사용자 제한 설정 적용
  • 비밀번호 인증 대신 공개 키 인증 사용
  • root 로그인은 비활성화 유지
  • 접속 로그 주기적 점검 (/var/log/auth.log)

 
 

관련 글 링크

2025.03.29 - [1.시스템&인프라/Ubuntu] - 8. 리눅스 계정 관리 명령어 정리 : 생성, 삭제, 잠금, 그룹

8. 리눅스 계정 관리 명령어 정리 : 생성, 삭제, 잠금, 그룹

리눅스에서 사용자 계정을 관리하는 방법을 정리했습니다. adduser, useradd, deluser, userdel 명령어의 차이점과 사용법을 한눈에 이해할 수 있습니다. 계정 잠금, 비활성화, 그룹 관리까지 포함된 설명

quadcube.tistory.com

2025.03.29 - [1.시스템&인프라/Ubuntu] - 7. systemctl 명령어 요약 정리(서비스 등록 및 관리)

7. systemctl 명령어 요약 정리(서비스 등록 및 관리)

Linux 시스템의 서비스 관리에 필수적인 systemctl 명령어를 정리했습니다. 서비스 시작, 자동 실행 설정, 로그 확인 등 systemd 기반 시스템 운영에 꼭 필요한 명령어를 실용 예시와 함께 설명합니다.

quadcube.tistory.com

2025.03.29 - [1.시스템&인프라/Ubuntu] - 9. su vs sudo 비교

9. su vs sudo 비교

Linux에서 su와 sudo는 관리자 권한을 얻는 대표적인 방법입니다. 두 명령어의 차이점과 사용법, 배포판별 특징을 이해하면 더 안전하고 효율적인 시스템 관리를 할 수 있습니다. su vs sudo 비교 목

quadcube.tistory.com

 

728x90