개요
sshd는 백그라운드에서 실행되며, 기본적으로 TCP 포트 22번을 통해 SSH 클라이언트의 연결을 기다립니다. 모든 통신은 암호화되어 보안을 유지하며, 다양한 인증 방식(비밀번호, 공개키 등)을 지원합니다.
주요 기능
- 안전한 원격 셸 접속 제공
- SCP/SFTP를 통한 파일 전송 지원
- 포트 포워딩 및 터널링 기능
- 다양한 인증 메커니즘 지원 (비밀번호, 공개키)
기본 설정 파일
sshd의 동작은 주로 다음 설정 파일을 통해 제어됩니다.
- 경로: /etc/ssh/sshd_config
주요 옵션
sshd는 일반적으로 시스템 서비스로 실행되므로 직접 명령줄 옵션을 사용할 일은 많지 않지만, 디버깅이나 테스트 목적으로 사용될 수 있는 몇 가지 옵션이 있습니다.
실행 및 디버깅
생성된 명령어:
명령어를 조합해 보세요.
설명:
`sshd` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
sshd는 주로 systemd와 같은 서비스 관리자를 통해 제어됩니다.
sshd 서비스 상태 확인
sudo systemctl status sshd
sshd 서비스의 현재 상태를 확인합니다.
sshd 서비스 재시작
sudo systemctl restart sshd
설정 변경 후 sshd 서비스를 재시작하여 변경 사항을 적용합니다.
sshd 서비스 활성화 (부팅 시 자동 시작)
sudo systemctl enable sshd
시스템 부팅 시 sshd 서비스가 자동으로 시작되도록 설정합니다.
sshd 설정 파일 유효성 검사
sudo sshd -t
sshd_config 파일에 문법적 오류가 없는지 확인합니다.
디버그 모드로 sshd 실행 (테스트용)
sudo sshd -d -p 2222
기본 포트가 아닌 다른 포트(예: 2222)에서 디버그 모드로 sshd를 실행합니다. 실제 서비스에 영향을 주지 않고 테스트할 때 유용합니다.
설치
sshd는 OpenSSH 서버 패키지의 일부로 제공됩니다. 대부분의 리눅스 배포판에 기본적으로 설치되어 있지만, 없는 경우 다음 명령어를 사용하여 설치할 수 있습니다.
Debian/Ubuntu 기반 시스템
sudo apt update
sudo apt install openssh-server
CentOS/RHEL/Fedora 기반 시스템
sudo yum install openssh-server # 또는 sudo dnf install openssh-server
팁 & 주의사항
sshd는 시스템 보안에 매우 중요한 역할을 하므로, 설정 시 다음 사항들을 고려하는 것이 좋습니다.
보안 강화 팁
- **기본 포트 변경**: `Port 22`를 다른 임의의 높은 포트 번호로 변경하여 무작위 공격을 줄입니다.
- **루트 로그인 비활성화**: `PermitRootLogin no`로 설정하여 루트 계정으로 직접 로그인하는 것을 금지합니다.
- **비밀번호 인증 비활성화 및 공개키 인증 사용**: `PasswordAuthentication no`로 설정하고 공개키 인증(`PubkeyAuthentication yes`)을 사용하여 보안을 강화합니다.
- **허용 사용자 제한**: `AllowUsers` 또는 `AllowGroups` 옵션을 사용하여 SSH 접속을 허용할 사용자나 그룹을 명시적으로 지정합니다.
- **방화벽 설정**: SSH 포트(기본 22 또는 변경된 포트)만 외부에서 접근 가능하도록 방화벽(ufw, firewalld 등)을 설정합니다.
설정 변경 후 서비스 재시작
`sshd_config` 파일을 수정한 후에는 반드시 `sudo systemctl restart sshd` 명령어를 사용하여 서비스를 재시작해야 변경 사항이 적용됩니다.
접속 테스트
설정 변경 후에는 반드시 다른 터미널에서 SSH 접속을 시도하여 변경 사항이 올바르게 적용되었는지 확인하십시오. 기존 세션을 유지한 채로 테스트하는 것이 좋습니다.