서버 파일 전송 실전 가이드 – SFTP와 SCP 활용법

1. 서버에 파일을 올려야 하는 상황들

서버를 운영하다 보면 파일을 주고받아야 할 상황이 생각보다 자주 발생합니다.

내 컴퓨터에서 만든 웹사이트 파일을 서버에 올릴 때, 서버에서 생성된 로그 파일을 분석하기 위해 내 컴퓨터로 내려받을 때, 설정 파일을 수정하기 위해 서버에서 내려받고 수정 후 다시 올릴 때가 대표적입니다.

이런 작업을 위해 리눅스에서는 SFTPSCP 두 가지 방법을 주로 사용합니다.

2. FTP의 문제점과 SFTP의 등장

예전에는 파일 전송에 **FTP(File Transfer Protocol)**가 사용됐습니다. FTP는 사용하기 편리했지만 치명적인 약점이 있었습니다. 파일 내용뿐 아니라 아이디와 비밀번호까지 암호화 없이 전송되었습니다.

누군가 네트워크를 감청하면 전송 중인 파일과 계정 정보를 통째로 가져갈 수 있었습니다. 이 보안 문제를 해결하기 위해 SSH 기반의 SFTP가 등장했고, 현재는 FTP 대신 SFTP가 표준으로 사용됩니다.

3. SFTP란 무엇인가?

**SFTP(SSH File Transfer Protocol)**는 SSH의 보안 채널 위에서 파일을 전송하는 프로토콜입니다.

SSH와 같은 22번 포트를 사용하고, SSH 키 인증을 그대로 활용할 수 있습니다. SSH만 설치되어 있으면 별도 설정 없이 바로 SFTP를 사용할 수 있습니다.

SFTP는 대화형(Interactive) 세션 방식으로 동작합니다. 접속하면 sftp> 프롬프트가 나타나고, 그 안에서 파일을 업로드하거나 다운로드하는 명령을 입력합니다.

접속 방법입니다.

sftp 사용자명@서버IP주소

SSH 키 파일을 사용하는 경우입니다.

sftp -i 키파일.pem 사용자명@서버IP주소

접속 후 자주 사용하는 명령어는 다음과 같습니다. put 파일명은 내 컴퓨터에서 서버로 파일을 올립니다. get 파일명은 서버에서 내 컴퓨터로 파일을 내려받습니다. ls는 서버의 파일 목록을 봅니다. lls는 내 컴퓨터의 파일 목록을 봅니다. exit은 접속을 종료합니다.

4. SCP란 무엇인가?

**SCP(Secure Copy Protocol)**는 SSH를 기반으로 한 파일 복사 명령어입니다.

SFTP와의 가장 큰 차이는 대화형 세션 없이 한 줄 명령어로 바로 파일을 전송한다는 점입니다. 빠르고 간결해서 간단한 파일 전송 작업에 적합합니다.

내 컴퓨터에서 서버로 파일을 전송하는 형태입니다.

scp 로컬파일 사용자명@서버IP:서버경로

예시로, index.html을 서버의 /var/www/html/ 경로로 전송합니다.

scp index.html ubuntu@123.45.67.89:/var/www/html/

SSH 키 파일을 사용하는 경우 -i 옵션을 추가합니다.

scp -i 키파일.pem index.html ubuntu@123.45.67.89:/var/www/html/

서버에서 내 컴퓨터로 파일을 내려받는 형태입니다.

scp ubuntu@123.45.67.89:/var/log/nginx/access.log ~/Downloads/

폴더 전체를 전송할 때는 -r 옵션을 추가합니다.

scp -r ./myproject ubuntu@123.45.67.89:/home/ubuntu/

5. SFTP와 SCP의 차이 – 언제 무엇을 쓸까?

구분SFTPSCP
사용 방식대화형 세션한 줄 명령어
파일 관리탐색, 삭제, 이름 변경 가능복사만 가능
적합한 상황여러 파일 관리, 서버 탐색단순 파일 전송
자동화 스크립트가능 (다소 복잡)간편

단순히 파일 하나를 빠르게 전송하고 싶다면 SCP가 편리합니다. 서버의 디렉토리를 탐색하면서 여러 파일을 관리해야 한다면 SFTP가 적합합니다.

6. GUI로 편리하게 – FileZilla 사용법

명령어가 불편하다면 그래픽 인터페이스(GUI) 도구인 FileZilla를 사용할 수 있습니다. 드래그 앤 드롭으로 파일을 전송할 수 있어 직관적입니다.

FileZilla 사용 방법은 다음과 같습니다.

  1. FileZilla 공식 사이트에서 무료 다운로드 후 설치합니다.
  2. 파일 메뉴에서 사이트 관리자를 엽니다.
  3. 프로토콜을 SFTP로 선택합니다.
  4. 호스트에 서버 IP, 포트에 22를 입력합니다.
  5. 로그온 유형을 키 파일로 선택하고 .pem 파일을 지정합니다.
  6. 연결 버튼을 클릭합니다.

연결되면 왼쪽은 내 컴퓨터, 오른쪽은 서버의 파일 탐색기가 표시됩니다. 파일을 드래그해서 양쪽으로 전송할 수 있습니다.

7. 상황별 추천 방법 정리

파일 하나를 빠르게 서버에 올릴 때는 SCP를 사용합니다. 서버의 파일을 탐색하고 관리해야 할 때는 SFTP를 사용합니다. 명령어가 불편하거나 처음 사용하는 경우에는 FileZilla를 사용합니다. 배포 자동화 스크립트에 파일 전송을 포함할 때는 SCP를 사용합니다.

8. 정리 및 다음 단계

오늘 배운 핵심을 정리합니다.

  • 서버와 파일을 안전하게 주고받으려면 암호화된 SFTP 또는 SCP를 사용합니다.
  • SFTP는 대화형 세션으로 서버 파일을 탐색하고 관리할 수 있습니다.
  • SCP는 한 줄 명령어로 빠르게 파일을 전송할 수 있습니다.
  • 명령어가 불편하다면 FileZilla GUI 도구를 활용할 수 있습니다.

다음 글에서는 리눅스 서버를 다룰 때 꼭 알아야 할 핵심 명령어 10가지를 알아보겠습니다.

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.