본문 바로가기
리눅스의 모든 것

리눅스 SSH 설정 방법 – 설치부터 보안 강화까지 완벽 가이드

by 운따돈 2025. 8. 14.

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


비밀번호 대신 키 인증 사용하기

보안을 강화하려면 비밀번호 대신 공개키·개인키 인증 방식을 사용하는 것이 좋습니다.

  1. 클라이언트에서 키 생성
    ssh-keygen -t rsa -b 4096
  2. 공개키를 서버로 전송
    ssh-copy-id 사용자명@서버IP주소
  3. 서버의 /home/사용자명/.ssh/authorized_keys 파일에 키가 등록되면 비밀번호 없이 접속 가능

/etc/ssh/sshd_config에서
PasswordAuthentication no
로 변경하면 비밀번호 로그인은 막히고 키 인증만 허용됩니다.


보안 강화 팁

  1. 기본 포트 변경 – 22번 포트는 해커의 1차 공격 대상입니다. 다른 포트로 변경하면 무작위 공격 시도를 줄일 수 있습니다.
  2. root 계정 직접 로그인 금지 – 일반 사용자로 접속 후 필요 시 sudo 사용.
  3. 접속 가능 IP 제한 – 방화벽에서 특정 IP만 허용.
  4. 로그 모니터링 – /var/log/auth.log(Ubuntu) 또는 /var/log/secure(CentOS) 확인.
  5. Fail2ban 설치 – 일정 횟수 이상 비밀번호 실패 시 IP 차단.

결론

리눅스 SSH 설정은 원격 서버 관리의 기본 중 기본입니다.
설치만 해도 바로 쓸 수 있지만, 보안 설정을 함께 해두면 서버를 안전하게 지킬 수 있습니다.


특히 포트 변경, root 차단, 키 인증 사용은 최소한의 보안 수칙으로 꼭 적용하시길 추천드립니다.
SSH는 단순 접속뿐 아니라 파일 전송(scp, sftp), 터널링, 자동화 스크립트 실행 등에도 활용할 수 있으니, 한 번 익혀두면 서버 관리 효율이 크게 올라갑니다.