SSH(Secure Shell)는 원격지의 서버에 안전하게 접속할 수 있는 네트워크 프로토콜입니다.
서버 관리자는 SSH를 이용해 터미널 명령어로 서버를 제어하고, 파일을 전송하거나 설정을 변경할 수 있습니다.
기본적으로 암호화된 통신을 사용하기 때문에 Telnet 같은 예전 방식보다 훨씬 안전합니다.
웹호스팅, 클라우드 서버(AWS, GCP, Azure), 라즈베리파이, 사내 리눅스 서버 관리 등에서 필수로 쓰입니다.
SSH 설치 확인 및 설치 방법
대부분의 리눅스 배포판에는 SSH 클라이언트가 기본 탑재되어 있습니다.
서버에 SSH 서버(ssh daemon)가 설치되어 있는지 확인하려면 다음을 입력합니다.
ssh -V
→ SSH 버전이 나오면 설치된 상태입니다.
만약 설치가 안 되어 있다면 OS별로 다음과 같이 설치합니다.
- Ubuntu / Debian 계열
sudo apt update
sudo apt install openssh-server - CentOS / RHEL 계열
sudo yum install openssh-server
설치 후 SSH 서비스 시작 및 부팅 시 자동 실행 설정도 해줘야 합니다.
sudo systemctl start ssh
sudo systemctl enable ssh
SSH 기본 설정
SSH 서버의 기본 설정 파일은 /etc/ssh/sshd_config입니다.
이 파일에서 포트, 접속 허용 계정, 인증 방식 등을 변경할 수 있습니다.
sudo nano /etc/ssh/sshd_config
대표적인 설정 항목은 다음과 같습니다.
- Port 22
→ 기본 포트를 변경해 보안 강화 가능 (예: Port 2222) - PermitRootLogin no
→ root 계정 직접 접속 차단 - PasswordAuthentication yes/no
→ 비밀번호 인증 허용 여부 - AllowUsers 사용자명
→ 특정 사용자만 접속 허용
설정을 변경한 후에는 반드시 SSH 서비스를 재시작해야 적용됩니다.
sudo systemctl restart ssh
방화벽 설정
SSH 포트를 변경했거나 새로 열었을 경우, 방화벽에 포트를 허용해야 합니다.
- UFW 사용 시(Ubuntu 기본)
sudo ufw allow 22/tcp - firewalld 사용 시(CentOS 기본)
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
SSH 접속 방법
클라이언트 PC에서 서버에 접속하려면 다음과 같이 입력합니다.
ssh 사용자명@서버IP주소
예:
ssh ubuntu@192.168.0.10
포트를 변경한 경우 -p 옵션을 붙입니다.
ssh -p 2222 ubuntu@192.168.0.10
비밀번호 대신 키 인증 사용하기
보안을 강화하려면 비밀번호 대신 공개키·개인키 인증 방식을 사용하는 것이 좋습니다.
- 클라이언트에서 키 생성
ssh-keygen -t rsa -b 4096 - 공개키를 서버로 전송
ssh-copy-id 사용자명@서버IP주소 - 서버의 /home/사용자명/.ssh/authorized_keys 파일에 키가 등록되면 비밀번호 없이 접속 가능
/etc/ssh/sshd_config에서
PasswordAuthentication no
로 변경하면 비밀번호 로그인은 막히고 키 인증만 허용됩니다.
보안 강화 팁
- 기본 포트 변경 – 22번 포트는 해커의 1차 공격 대상입니다. 다른 포트로 변경하면 무작위 공격 시도를 줄일 수 있습니다.
- root 계정 직접 로그인 금지 – 일반 사용자로 접속 후 필요 시 sudo 사용.
- 접속 가능 IP 제한 – 방화벽에서 특정 IP만 허용.
- 로그 모니터링 – /var/log/auth.log(Ubuntu) 또는 /var/log/secure(CentOS) 확인.
- Fail2ban 설치 – 일정 횟수 이상 비밀번호 실패 시 IP 차단.
결론
리눅스 SSH 설정은 원격 서버 관리의 기본 중 기본입니다.
설치만 해도 바로 쓸 수 있지만, 보안 설정을 함께 해두면 서버를 안전하게 지킬 수 있습니다.
특히 포트 변경, root 차단, 키 인증 사용은 최소한의 보안 수칙으로 꼭 적용하시길 추천드립니다.
SSH는 단순 접속뿐 아니라 파일 전송(scp, sftp), 터널링, 자동화 스크립트 실행 등에도 활용할 수 있으니, 한 번 익혀두면 서버 관리 효율이 크게 올라갑니다.
'리눅스의 모든 것' 카테고리의 다른 글
리눅스 하드디스크 마운트 방법 – 신규 디스크 인식부터 자동 마운트까지 (2) | 2025.08.15 |
---|---|
리눅스 서비스 등록 방법 – systemd로 프로그램 자동 실행 설정하기 (2) | 2025.08.15 |
리눅스 grep 사용법 완벽 가이드 – 옵션, 예제, 실무 활용까지 (2) | 2025.08.14 |
리눅스 사용자에게 sudo 권한 주는 법 – 실전 명령어 쉽게 설명 (1) | 2025.08.12 |
리눅스 하드디스크 마운트 따라하기 – 새 디스크 붙이는 실전 가이드 (2) | 2025.08.11 |