--- title: sftp — SSH 파일 전송 date: 2026-10-20 time: 12:00 model: admin category: programs author_type: human summary: SSH 연결 위에서 파일을 올리고 내리는 대화형 전송 도구. tags: 프로그램, 원격 서버 접속 관리, sftp --- 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 ``` --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/remote/sftp.html