초보자를 위한 SSH 서버 관리 완벽 가이드: 필수 명령어부터 보안 강화까지
서버 관리를 위해 어쩔 수 없이 마주하는 검은 터미널 화면. 수많은 명령어를 외워야 한다는 부담감과 작은 실수 하나가 사이트를 망가뜨릴 수 있다는 두려움에 막막함을 느끼셨나요?
서버 관리, 더 이상 두렵지 않습니다
서버 관리를 위해 어쩔 수 없이 마주하는 검은 터미널 화면. 수많은 명령어를 외워야 한다는 부담감과 작은 실수 하나가 사이트를 망가뜨릴 수 있다는 두려움에 막막함을 느끼셨나요?
이 가이드는 바로 그런 당신을 위해 탄생했습니다. 단순히 명령어를 나열하는 것을 넘어, 각 명령어가 왜 필요한지, 그리고 어떤 안전 절차를 거쳐야 하는지를 상세히 설명합니다. 이 글을 끝까지 따라오시면, 더 이상 터미널을 두려워하지 않고, 자신감을 가지고 당신의 서버를 직접 돌볼 수 있는 든든한 기술을 얻게 될 것입니다.
패키지 관리 — 서버를 최신·안전 상태로 유지하기
리눅스 서버는 여러 패키지(웹서버, DB, PHP 등)의 조합입니다. 패키지를 최신으로 유지하는 것은 가장 기본이자 중요한 보안 수칙입니다.
핵심 업데이트 명령어 요약
Ubuntu/Debian (일상 업데이트)
Terminal
sudo apt update && sudo apt upgrade -yUbuntu/Debian (월 1회, 커널 포함 중요 업데이트)
Terminal
sudo apt update && sudo apt full-upgrade -yRHEL/CentOS/Fedora (최신 표준)
Terminal
sudo dnf upgrade -y --refreshDebian/Ubuntu 계열 업데이트 (apt)
패키지 목록 갱신
Terminal
sudo apt update업그레이드 종류
apt upgrade: 설치된 패키지를 제거 없이 가능한 범위에서 업그레이드(일상용).apt full-upgrade: 필요 시 의존성 조정/패키지 제거·설치까지 동반하여 커널 등 중요 요소까지 확실히 갱신(월 1회 권장).apt-get dist-upgrade와 동일하게 동작합니다.
불필요 패키지 정리
Terminal
sudo apt autoremove팁: -y 없이 먼저 실행해 삭제될 목록을 확인한 뒤 진행하세요. 특히 커널/커널 헤더 삭제 제안이 보이면 일단 보류하고 재검토가 안전합니다.
RHEL/CentOS/Fedora 계열 업데이트 (dnf)
최신 RHEL·CentOS Stream·Fedora는 dnf가 표준입니다. yum도 호환되지만 dnf 사용을 권장합니다.
업그레이드(메타데이터 강제 갱신 포함)
Terminal
sudo dnf upgrade -y --refresh중요: 예전에 쓰던 dnf check-update && dnf upgrade 방식은, 업데이트가 있을 때 check-update가 종료코드 100을 반환해 && 뒤 명령이 실행되지 않는 문제가 있습니다. 따라서 dnf upgrade를 직접 사용하세요.
Terminal
sudo dnf autoremove -ySSH 보안 강화 — 우리 집 현관문 단단히 잠그기
키(Key) 기반 인증 + 비밀번호 로그인 비활성화
키 등록
Terminal
ssh-copy-id [사용자명]@[서버 IP]새 터미널에서 키로 재접속 확인되는지 반드시 확인합니다.
확인 후에만 비밀번호/루트 로그인 차단
Config
# /etc/ssh/sshd_config 편집 후 다음 두 항목 반영
PasswordAuthentication no
PermitRootLogin no적용 전 테스트 & 리로드
Terminal
# 문법 테스트(오류 없으면 출력 없음)
sudo sshd -t
# Ubuntu/Debian
sudo systemctl reload ssh
# RHEL/CentOS/Fedora
sudo systemctl reload sshd기본 포트 변경 + 방화벽 안전 절차
새 포트로 접속
Terminal
ssh -p 2222 user@server방화벽 — 안전 순서(잠금사고 방지)
- 새 포트 허용
sshd_config에서Port 2222설정 → 리로드- 새 포트로 접속 테스트 성공
- 마지막에 22 포트 규칙 제거
Terminal
# UFW(예시)
sudo ufw allow 2222/tcp
sudo systemctl reload ssh
# 새 포트 접속 확인 후
sudo ufw delete allow 22/tcp
sudo ufw enable
# Firewalld(예시)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
# 새 포트 접속 확인 후
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload워드프레스 운영자를 위한 추가 보안 팁
파일 권한 & 소유권 최적화
가장 민감한 wp-config.php는 더 엄격하게:
Terminal
# 웹서버가 읽기만 가능하도록 권한 강화
sudo chmod 640 /var/www/html/wp-config.php
# 또는 더 엄격하게
sudo chmod 600 /var/www/html/wp-config.php중요
640을 쓰면 그룹이 웹서버 그룹(예: www-data)이어야 PHP가 읽을 수 있습니다.600이면 파일 소유자가 PHP-FPM 실행 사용자여야 합니다.
무작정 사이트 전체에 chown -R www-data:www-data를 적용하지 말고, 실제 쓰기가 필요한 경로(예: wp-content/uploads)만 최소 권한으로 부여하세요.
장시간 작업을 위한 tmux (또는 screen)
네트워크가 끊겨도 작업을 유지하는 세션 관리자입니다.
Terminal
# 설치
sudo apt install -y tmux # 또는: sudo dnf install -y tmux
# 세션 시작
tmux
# (끊겼다가) 다시 붙기
tmux attach