> 네트워크 관리 > ssh-server

SSH 서버 (sshd): 원격 접속 관리

SSH 서버는 Secure Shell (SSH) 프로토콜을 사용하여 원격 시스템에 대한 안전한 접속을 제공하는 소프트웨어입니다. 주로 `sshd` (SSH Daemon)라는 이름의 서비스로 실행되며, 암호화된 통신 채널을 통해 원격 명령 실행, 파일 전송(SCP/SFTP), 포트 포워딩 등을 가능하게 합니다. 이는 시스템 관리, 개발, 데이터 전송 등 다양한 원격 작업에 필수적입니다.

개요

SSH 서버는 클라이언트의 SSH 연결 요청을 수신하고 인증하며, 안전한 통신 세션을 설정합니다. 이를 통해 원격에서 명령을 실행하거나 파일을 안전하게 전송할 수 있습니다. 서버의 핵심 구성 요소는 `sshd` 데몬이며, 이 데몬은 일반적으로 시스템 부팅 시 자동으로 시작되도록 설정됩니다.

주요 기능

SSH 서버가 제공하는 핵심 기능들입니다.

  • 원격 셸 접속: 암호화된 터미널을 통해 원격 서버에 접속하여 명령 실행
  • 안전한 파일 전송: SCP(Secure Copy) 및 SFTP(SSH File Transfer Protocol)를 이용한 파일 업로드/다운로드
  • 포트 포워딩: 로컬/원격 포트를 터널링하여 보안되지 않은 서비스에 대한 안전한 접근 제공
  • 키 기반 인증: 비밀번호 대신 SSH 키를 사용하여 더 강력한 보안 인증

주요 옵션 (sshd 명령어)

`sshd` 데몬을 직접 실행할 때 사용되는 주요 옵션입니다. 일반적으로 `systemd`와 같은 서비스 관리자를 통해 실행되므로, 이 옵션들은 주로 디버깅이나 특정 환경 설정 테스트 시 유용합니다.

실행 및 디버그

생성된 명령어:

명령어를 조합해 보세요.

설명:

`ssh-server` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

설치

대부분의 리눅스 배포판에서 SSH 서버는 `openssh-server` 패키지를 통해 제공됩니다. 기본적으로 설치되어 있지 않은 경우, 다음 명령어를 사용하여 설치할 수 있습니다.

Debian/Ubuntu 기반 시스템

sudo apt update
sudo apt install openssh-server

APT 패키지 관리자를 사용하여 `openssh-server`를 설치합니다.

CentOS/RHEL 기반 시스템

sudo yum install openssh-server
# 또는 Fedora/최신 RHEL:
sudo dnf install openssh-server

YUM 또는 DNF 패키지 관리자를 사용하여 `openssh-server`를 설치합니다.

사용 예시

SSH 서버를 관리하고 설정하는 일반적인 방법들입니다.

SSH 서비스 시작

sudo systemctl start ssh

SSH 데몬(`sshd`) 서비스를 시작합니다.

SSH 서비스 재시작

sudo systemctl restart ssh

SSH 데몬 서비스를 재시작합니다. 설정 파일 변경 후 적용할 때 주로 사용됩니다.

SSH 서비스 상태 확인

sudo systemctl status ssh

SSH 데몬 서비스의 현재 상태를 확인합니다.

SSH 서비스 자동 시작 활성화

sudo systemctl enable ssh

시스템 부팅 시 SSH 서비스가 자동으로 시작되도록 설정합니다.

방화벽에서 SSH 포트 열기 (UFW)

sudo ufw allow ssh
# 또는 특정 포트를 사용하는 경우:
sudo ufw allow 2222/tcp

UFW(Uncomplicated Firewall)를 사용하는 경우, SSH 기본 포트(22)를 허용합니다.

SSH 설정 파일 편집

sudo nano /etc/ssh/sshd_config

SSH 서버의 주요 설정 파일인 `sshd_config`를 편집합니다. 변경 후에는 반드시 SSH 서비스를 재시작해야 합니다.

팁 & 주의사항

SSH 서버를 안전하고 효율적으로 운영하기 위한 중요한 팁과 주의사항입니다.

보안 강화 팁

SSH 서버의 보안을 강화하기 위한 권장 사항입니다.

  • **기본 포트 변경**: 기본 SSH 포트(22)를 다른 잘 알려지지 않은 포트(예: 2222)로 변경하여 무작위 공격 시도를 줄입니다. (`/etc/ssh/sshd_config` 파일의 `Port` 지시어 수정)
  • **비밀번호 대신 키 기반 인증 사용**: SSH 키 페어를 생성하여 비밀번호 인증보다 훨씬 강력한 보안을 제공합니다. (`PasswordAuthentication no` 설정)
  • **root 로그인 비활성화**: `root` 계정으로 직접 SSH 접속하는 것을 금지하고, 일반 사용자 계정으로 로그인 후 `sudo`를 사용하도록 합니다. (`PermitRootLogin no` 설정)
  • **Fail2Ban 사용**: 반복적인 로그인 실패 시 해당 IP 주소를 자동으로 차단하는 `Fail2Ban`과 같은 도구를 설치하여 무차별 대입 공격을 방어합니다.
  • **허용 사용자/그룹 제한**: `AllowUsers` 또는 `AllowGroups` 지시어를 사용하여 SSH 접속을 허용할 사용자나 그룹을 명시적으로 지정합니다.

file SSH 설정 파일 경로

/etc/ssh/sshd_config

SSH 서버의 주 설정 파일은 다음 경로에 위치합니다.


동일 카테고리 명령어