이 글에서 정리하는 내용
SSH, FTP, FTPS, SFTP가 왜 자꾸 헷갈리는지부터 정리하고, 파일 전송과 서버 접속을 목적 기준으로 구분하는 방법을 설명합니다. 접속 정보에 적힌 Host, Port, Username, Password, Key file이 무엇을 의미하는지 함께 살펴보며, 웹퍼블리셔나 프론트엔드 입문자가 운영 서버 반영 업무를 만났을 때 어떤 도구를 써야 하는지까지 한 번에 이해할 수 있도록 정리합니다.
파일 전송과 서버 접속을 먼저 구분해야 하는 이유

이 주제는 용어부터 외우려고 하면 더 헷갈리기 쉽습니다. 먼저 내가 하려는 일이 무엇인지부터 나누는 편이 이해가 훨씬 쉽습니다. 서버 작업은 크게 파일을 서버와 주고받는 일, 그리고 서버 안으로 들어가 명령어를 실행하는 일로 나뉩니다. 이 기준만 잡혀도 FTP, SFTP, SSH가 각각 어디에 속하는지 자연스럽게 보이기 시작합니다.
서버 작업은 보통 두 갈래로 나뉩니다
파일 전송 중심
- 이미지 업로드
- HTML/CSS/JS 교체
- 서버 파일 다운로드
원격 접속 중심
- 폴더 이동
- 로그 확인
- 권한 변경
- 패키지 설치
- 서버 재시작
파일만 올리고 내리는 작업이라면 보통 FTP, FTPS, SFTP 같은 파일 전송 방식을 보게 됩니다. 반대로 서버 안에서 직접 명령어를 입력해야 하면 SSH가 필요합니다. 즉, 파일 전송은 파일 전송 도구의 영역이고, 원격 접속은 터미널 접속의 영역이라고 이해하면 됩니다.
웹퍼블리셔 실무에서는 보통 이미지 교체, HTML 반영, CSS 수정본 업로드처럼 파일 전송부터 먼저 접하게 됩니다. 이후 운영 환경을 조금 더 다루게 되면 로그 확인, 권한 수정, 배포 명령 실행처럼 SSH 개념이 따라오게 됩니다.
SSH란 무엇인가
SSH는 내 컴퓨터에서 원격 서버에 안전하게 접속해 명령어를 실행할 수 있도록 해주는 방식입니다. 중요한 점은 SSH가 파일 업로드 도구라기보다, 서버 안으로 들어가는 원격 터미널 접속 방식에 가깝다는 것입니다. 즉, 화면은 내 컴퓨터에 있지만 실제로는 서버 안에서 명령어를 실행하고 있는 상태라고 보면 됩니다.
조금 더 정확히 말하면 SSH는 안전한 원격 로그인과 그 밖의 보안 네트워크 서비스를 위한 프로토콜입니다. 그래서 단순 로그인뿐 아니라 터널링, 원격 명령 실행, 그리고 SFTP 같은 부가 기능까지 같은 보안 통로 위에서 함께 쓰이게 됩니다.
SSH로 들어가면 보게 되는 작업
ssh -i myserver.pem ubuntu@example.com
cd /var/www/html
ls -al
pwd
tail -f /var/log/nginx/error.log
위와 같은 형태는 SSH 접속 예시입니다. 여기서 ssh는 접속 명령이고, -i 뒤의 파일은 개인키 파일이며, ubuntu@example.com은 사용자명과 서버 주소를 의미합니다. 접속에 성공하면 서버 내부에서 현재 폴더를 확인하거나, 파일 목록을 보거나, 로그를 확인하거나, 필요한 작업을 계속 이어갈 수 있습니다.
이때 함께 알아두면 좋은 용어가 경로와 권한입니다. 예를 들어 /var/www/html은 서버 안의 위치를 뜻하고, 권한은 파일을 읽고 쓰고 실행할 수 있는 범위를 뜻합니다. 퍼블리싱 파일이 있는데도 브라우저에서 안 열리거나, 수정한 파일이 반영되지 않는 상황에서는 경로나 권한 문제가 함께 얽혀 있는 경우도 있습니다.
FTP, FTPS, SFTP는 어떻게 다른가
이 구간이 가장 많이 헷갈리는 부분입니다. FTP는 오래된 파일 전송 방식이고, FTPS는 여기에 SSL/TLS 보안을 덧붙인 방식입니다. 반면 SFTP는 이름에 FTP가 들어가지만 구조적으로는 SSH 기반 파일 전송입니다. 그래서 이름만 보고 같은 계열로 외우면 오히려 혼동이 커집니다.
이름은 비슷하지만 구조는 다릅니다
FTP = 파일 전송용, 전통적인 방식
FTPS = FTP + SSL/TLS 암호화
SFTP = SSH 기반 파일 전송
SSH = 원격 서버 접속 및 명령 실행
FTP는 파일을 서버와 주고받는 데 초점이 있습니다. 다만 오래된 방식이라 보안 측면에서 한계가 있어, 요즘 환경에서는 그대로 쓰기보다 FTPS나 SFTP를 쓰는 경우가 많습니다. FTPS는 FTP 구조를 유지하면서 TLS 암호화를 더한 방식이고, SFTP는 아예 SSH 통로 위에서 파일을 전송하는 방식입니다.
여기서 FTPS는 다시 explicit 방식과 implicit 방식으로 나뉘기도 합니다. 실무 문서에서 FTPS라고만 적혀 있으면 보통 명시적으로 암호화를 협상하는 explicit FTPS를 뜻하는 경우가 많고, 환경에 따라 21번 포트나 990번 포트를 보게 될 수 있습니다. 반면 SFTP는 이런 FTP 계열 확장이라기보다 SSH 계열 파일 전송으로 이해하는 편이 정확합니다.
| 방식 | 핵심 특징 |
|---|---|
| FTP | 파일 전송 중심, 오래된 방식, 보안이 약한 편 |
| SFTP | SSH 기반 파일 전송, 보안이 강하고 실무에서 자주 사용 |
실무에서 특히 많이 나오는 착각은 “SFTP가 FTP의 보안 버전이겠지”라고 생각하는 것입니다. 실제로는 FTPS가 FTP에 암호화를 더한 구조에 가깝고, SFTP는 SSH 기반이라는 점에서 출발점이 다릅니다. 그래서 포트, 인증 방식, 사용하는 도구의 설정도 달라질 수 있습니다.
포트 번호로도 빠르게 감을 잡을 수 있습니다
FTP -> 보통 21
FTPS -> 보통 21 기반
SFTP -> 보통 22
SSH -> 22
포트는 서버의 어느 서비스 문으로 들어갈지를 구분하는 번호라고 생각하면 됩니다. 접속 정보에서 21번 포트가 보이면 FTP 계열일 가능성을 먼저 떠올릴 수 있고, 22번 포트가 보이면 SSH 또는 SFTP일 가능성을 먼저 생각해볼 수 있습니다. 물론 운영 환경에 따라 포트가 바뀌는 경우도 있지만, 입문 단계에서는 이 기준이 빠른 판단에 도움이 됩니다.
접속 정보를 받았을 때 해석하는 법

실무에서는 개념 설명보다 접속 정보가 먼저 도착하는 경우가 많습니다. 이때 Host, Port, Username, Password, Key file을 보고 어떤 접속인지 판단할 수 있어야 덜 당황합니다. 접속 정보는 결국 어느 서버로, 어느 문으로, 어떤 계정으로, 어떤 방식으로 인증할지를 적어둔 정보라고 보면 됩니다.
SSH 또는 SFTP로 보이는 예시
Host: example.com
Port: 22
Username: ubuntu
Password: 없음
Key file: myserver.pem
이 조합은 보통 SSH 접속이 가능하다고 볼 수 있고, 같은 계정 정보로 SFTP 접속도 함께 가능한 경우가 많습니다. 특히 .pem 같은 키 파일이 함께 오면 비밀번호 대신 개인키 인증을 쓰는 환경일 가능성이 큽니다. AWS 같은 클라우드 환경에서도 이런 방식이 자주 보입니다.
키 파일은 보통 공개키와 개인키 한 쌍으로 운영됩니다. 서버에는 공개키 정보가 등록되고, 내 컴퓨터에는 개인키 파일이 남습니다. 그래서 .pem 파일은 로그인 비밀번호를 대신하는 열쇠처럼 이해하면 흐름이 훨씬 단순해집니다.
전통적인 FTP로 보이는 예시
Host: example.com
Port: 21
Username: myaccount
Password: 1234
이 경우는 보통 FTP 접속 정보로 볼 수 있습니다. 다만 실제 운영 환경에서는 “FTP 정보”라고 전달받았지만 열어보면 SFTP 접속을 뜻하는 경우도 많기 때문에, 포트와 인증 방식을 꼭 함께 보는 습관이 중요합니다. 이름만 믿지 말고 포트, 키 파일 존재 여부, 접속 방식 선택 항목을 같이 확인해야 합니다.
또 하나 자주 보는 용어가 root입니다. root는 리눅스 최고 관리자 계정이라 권한이 매우 강합니다. 그래서 운영 서버에서는 root 직접 접속을 막고, ubuntu나 ec2-user 같은 일반 계정으로 먼저 접속한 뒤 필요한 순간에만 sudo를 쓰게 하는 경우가 많습니다.
퍼블리셔 관점에서 어떤 도구를 쓰는가
파일만 반영 -> FileZilla, WinSCP, VSCode SFTP 확장
명령어 작업 -> Terminal, iTerm, PuTTY, VSCode 터미널
둘 다 필요 -> SSH + SFTP 조합
퍼블리싱 업무에서는 먼저 서버 파일을 열고 저장하면 바로 업로드되는 방식의 VSCode 확장을 많이 접하게 됩니다. 겉보기에는 FTP처럼 느껴질 수 있지만, 실제로는 SFTP 기반인 경우가 많습니다. 반대로 npm 설치, 서버 재시작, 로그 확인처럼 명령어가 필요한 순간에는 SSH 접속이 따로 필요합니다.
정리
이 글에서 가장 중요한 기준은 목적입니다. 파일을 서버와 주고받는 것이 목적이면 FTP 계열을 떠올리면 되고, 안전하고 일반적인 실무 환경에서는 SFTP를 먼저 생각하면 됩니다. 서버 안으로 들어가 명령어를 실행해야 한다면 SSH가 필요합니다. 그리고 SFTP는 이름만 보면 FTP처럼 보이지만 실제로는 SSH 기반 파일 전송이라는 점을 분명히 구분해야 합니다.
정리하면 이렇게 외우면 편합니다. 파일 전송만 하면 SFTP, 서버에 들어가 작업하면 SSH, 오래된 호스팅 환경에서는 FTP나 FTPS가 남아 있을 수 있습니다. 접속 정보를 받았을 때는 Host와 Port, 인증 방식, 키 파일 존재 여부를 먼저 보고 구조를 판단하는 습관을 들이면 실무에서 훨씬 안정적으로 대응할 수 있습니다.
많이 받는 질문
Q. SSH로 접속하면 파일도 바로 올릴 수 있나요?
SSH 자체는 원격 터미널 접속에 가깝습니다. 다만 SSH 기반 파일 전송 방식인 SFTP를 함께 쓰면 파일 업로드와 다운로드도 할 수 있습니다.
Q. .pem 파일은 정확히 무엇인가요?
보통 SSH 접속에 사용하는 개인키 파일입니다. 비밀번호 대신 이 키 파일을 이용해 서버가 접속 사용자를 인증하는 구조라고 이해하면 됩니다.
Q. 퍼블리셔라면 FTP와 SSH를 둘 다 알아야 하나요?
처음에는 SFTP로 파일 반영하는 방법부터 익혀도 충분합니다. 다만 운영 환경을 더 직접 다루게 되면 로그 확인, 권한 수정, 배포 명령 때문에 SSH 개념까지 알아두는 편이 실무 대응에 훨씬 유리합니다.