English

sftp — SSH 파일 전송

Linux / 원격 서버 접속 관리 / sftp.html

원격 서버 접속 관리원문등록 2026-10-20T09:00:00+09:00

SSH 연결 위에서 파일을 올리고 내리는 대화형 전송 도구.

기본 정보

명령어 이름sftp
한 줄 소개SSH 연결 위에서 파일을 올리고 내리는 대화형 전송 도구.
제공OpenSSH (openssh-client)
공식 문서https://man.openbsd.org/sftp.1
지원 운영체제Linux, macOS, BSD, WSL
설치 여부기본 탑재 (openssh-client)
분류리눅스 원격 접속 (태그: 원격 접속·파일 전송 (태그: sftp, ssh, 전송, 업로드, 다운로드))

이 명령어는 무엇인가?

sftp는 SSH 위에서 동작하는 파일 전송 클라이언트입니다. FTP와 비슷한 대화형 명령(get, put, ls, cd)을 제공하지만, 전송 구간 전체가 SSH로 암호화되고 기존 키와 계정을 그대로 사용합니다.

scp가 한 번에 하나씩 복사하는 도구라면, sftp는 세션을 유지한 채 여러 파일을 오가며 작업할 수 있습니다. -b 옵션으로 배치 파일을 실행해 비대화형 전송도 가능합니다.

어떤 문제를 해결하는가?

  • 원격 서버로 설정 파일이나 배포 산출물을 안전하게 올릴 때
  • 원격 디렉터리를 둘러보며 필요한 파일만 골라 내려받을 때
  • 방화벽에서 SSH(22번)만 열려 있어 FTP 포트를 열 수 없을 때
  • 키 인증으로 반복 전송을 자동화해야 할 때

주요 기능

대화형 전송

접속 후 cd, ls, get, put으로 원격과 로컬을 오가며 파일을 다룹니다.

  • 활용 상황: 여러 파일을 한 세션에서 순서대로 처리할 때
  • 얻는 결과: 디렉터리 구조를 보며 작업할 수 있습니다.
  • 제한 사항: 경로를 잘못 지정하면 엉뚱한 위치에 파일이 생깁니다.

배치 모드

-b로 명령 목록 파일을 읽어 비대화형으로 실행합니다.

  • 활용 상황: cron이나 CI에서 정해진 파일을 주기적으로 보낼 때
  • 얻는 결과: 사람 없이 동일한 전송이 반복됩니다.
  • 제한 사항: 오류 시 배치가 중단되므로 종료 코드 확인이 필요합니다.

SSH 키 재사용

~/.ssh/config, 키, ProxyJump 설정을 그대로 따릅니다.

  • 활용 상황: 이미 SSH 접속이 되는 서버에 파일만 옮기면 될 때
  • 얻는 결과: 별도 계정이나 포트를 열지 않아도 됩니다.
  • 제한 사항: SSH가 차단되면 sftp도 쓸 수 없습니다.

설치 및 실행

설치 여부 확인

sftp -V

sudo apt install openssh-client # Debian/Ubuntu sudo dnf install openssh-clients # Fedora

실제 사용 예제

접속과 둘러보기

원격에 접속해 현재 위치와 파일 목록을 확인합니다.

sftp deploy@203.0.113.10
pwd
ls -l
bye

파일 올리고 내리기

로컬 파일을 올리고 원격 파일을 내려받습니다.

put ./app.tar.gz /srv/releases/
get /var/log/app/error.log ./error.log

배치 전송

명령 목록을 만들어 비대화형으로 실행합니다.

printf 'put build.zip /srv/www/\nbye\n' > /tmp/up.txt
sftp -b /tmp/up.txt deploy@203.0.113.10