5분 만에 배우는 SSH
서버 터미널에서 자신 있게 작업하기 위한 최소 명령어 모음: 파일 탐색, 설정 편집, 서비스, 로그, 권한을 다뤄요.
업데이트 2026년 8월 23일
Linux를 전부 알 필요는 없어요. 약 15개의 명령어면 충분해요 — 아래에 정리했어요.
지금 어디에 있고 주변에 뭐가 있는지
pwd
ls -la
cd /etc/nginx
cat /etc/os-release
pwd — 현재 디렉터리, ls -la — 숨김 파일과 권한까지 포함한 내용, cd — 디렉터리 이동. /로 시작하는 경로는 루트부터 계산하고, ~는 홈 디렉터리이며 root의 경우 /root예요.
유용한 팁: Tab은 이름을 자동 완성하고, 위 화살표는 이전 명령어를 불러오며, Ctrl+C는 실행을 중단하고, Ctrl+D는 세션을 종료해요.
파일과 디렉터리
mkdir -p /opt/app/data
cp config.yml config.yml.bak
mv old.log /var/log/archive/
rm -f temp.txt
du -sh /var/log
rm -rf는 묻지도 않고 되돌릴 수도 없어요. 실행하기 전에 경로를 다시 읽어 보세요 — 특히/로 시작한다면 더욱요.
설정 편집
간단한 편집기는 nano예요:
nano /etc/ssh/sshd_config
저장 — Ctrl+O, 그다음 Enter. 종료 — Ctrl+X. nano가 설치되어 있지 않다면:
apt install -y nano
운영 중인 설정을 편집하기 전에는 복사본을 만들어 두세요: cp file file.bak.
서비스
systemctl status nginx
systemctl restart nginx
systemctl enable --now nginx
systemctl disable --now nginx
enable은 "머신 부팅 시 시작", --now는 "그리고 지금 바로"를 뜻해요. enable을 잊는 것이 재부팅 후 서비스가 올라오지 않는 가장 흔한 이유예요.
로그
journalctl -u nginx -n 50 --no-pager
journalctl -xe
tail -f /var/log/syslog
첫 번째는 특정 서비스의 마지막 50줄, 두 번째는 최근 시스템 이벤트, 세 번째는 파일의 실시간 스트림이에요(종료는 Ctrl+C). 뭔가 안 될 때는 재부팅이 아니라 여기서부터 시작하세요.
패키지
Debian과 Ubuntu에서는:
apt update && apt upgrade -y
apt install -y curl git ufw
AlmaLinux와 CentOS Stream에서는 apt 대신 dnf를 쓰며, 별도 문서에서 다뤄요.
권한과 소유자
chown -R www-data:www-data /var/www/site
chmod 600 /root/.ssh/authorized_keys
chmod +x deploy.sh
숫자는 소유자, 그룹, 기타 사용자의 권한이에요: 6 — 읽기와 쓰기, 4 — 읽기만, 7 — 여기에 실행까지. 키와 시크릿에는 600이 필요해요. 그렇지 않으면 SSH가 사용을 거부해요.
리소스와 프로세스
free -h
df -h
ps aux | grep node
kill -9 12345
시각적인 그림을 원하면 btop이 편리하지만, 텍스트 콘솔에서는 80×24로 잘려요 — SSH나 머신 화면에서 실행하세요.
흔한 실수
- 복사본 없이 설정을 편집하고 나서 무엇을 바꿨는지 기억하지 못해요.
journalctl을 읽지 않고 서비스를 재시작하며 눈 감고 고쳐요.- "작동하게 하려고" 사이트 디렉터리에
chmod 777을 설정해요 — 그건 해결책이 아니라 구멍이에요. systemctl enable을 잊고 재부팅 후 서비스를 잃어버려요.
다음: ~/.ssh/config 파일은 긴 접속 명령어에서 벗어나게 해 주고, 용어집은 용어를 설명해 줘요.