개요
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 서버의 주 설정 파일은 다음 경로에 위치합니다.