Intro.
sftp는 내 컴퓨터와 원격 서버 사이에서 파일을 안전하게 주고받기 위한 프로그램.
- SSH 연결을 그대로 사용 ,
- 별도의 계정이나 비밀번호를 또 만들 필요가 없음.
openssh-server 설치시
sftp도 서브시스템으로 설치됨.
사실 sftp 클라이언트는 ftp와 조작법이 같음.
2026.01.10 - [Linux] - openssh-server 설치하기 - Ubuntu
openssh-server 설치하기 - Ubuntu
openssh-server Linux에서 원격 접속과 파일 전송을 가능하게 하는 표준 SSH 서버 소프트웨어sshd 데몬을 통해 다음을 지원함:외부 클라이언트의 로그인,원격 명령 실행,scp,sftp 연결 이 패키지를 설치하
ds31x.tistory.com
1. scp와 sftp의 차이
scp가 하나의 파일 중심으로 주고 받는 형태라면, sftp는 일종의 원격 탐색기라고 볼 수 있음.
| 구분 | scp | sftp |
| 동작 방식 | 한 번에 파일 복사 | 접속 후 탐색하면서 전송 |
| 탐색 | 불가능 | 가능 (ls, cd 등) |
| 사용 느낌 | cp 와 같이소스와 타겟을 써서 바로 복사 |
FTP 같은 대화형 |
| 중간에 여러 작업 | 불가능 | 가능 |
아주 간단하게 생각하면 다음과 같음:
scp: 택배 보내듯 한 번에 전송sftp: 원격 서버에 들어가서 파일 관리자처럼 조작
2024.12.26 - [Linux] - [linux] scp: Secure Copy Protocol
[linux] scp: Secure Copy Protocol
0.scp란?scp 는 파일을 한 컴퓨터에서 다른 컴퓨터로 안전하게 복사하기 위한 명령어 및 프로토콜SSH(Secure Shell) 프로토콜을 사용하여 데이터 전송 중에 암호화를 제공1.로컬로 특정 파일 복사해오
ds31x.tistory.com
2. 서버에 접속하기
가장 기본적인 방법:
sftp user@server
user:ssh에서 사용되는 계정.server: ssh server가 설치되어 서비스되는 계정.- 기본으로 22번 port사용.
~/.ssh/config 와 같은 SSH 설정 파일이 있다면 다음처럼 host명만으로 접속 가능:
예를 들어 ~/.ssh/config에:
Host myserver
HostName 10.0.0.5
User dsaint31
IdentityFile ~/.ssh/id_rsa
위의 설정이 있다면 다음만으로도 접속 가능함:
sftp myserver
보다 자세한 건 ssh 글을 참고: 2025.08.05 - [utils] - ssh (Secure SHell) 사용 방법
ssh (Secure SHell) 사용 방법
SSH 는 Secure SHell의 약자로 암호화된 보안 연결을 통해 원격 서버에 안전하게 접속하고 명령을 실행할 수 있게 해주는 네트워크 프로토콜을 가리킴. (이를 사용하는 클라이언트 및 앱을 가리키기
ds31x.tistory.com
두 경우 모두 접속 성공하면 다음을 확인 가능함:
Connected to <HOST_IP or HOST_NAME>
sftp>

3. 두 개의 파일 시스템을 동시에 다룸
sftp에는 항상 두 공간이 존재:
| 공간 | 의미 |
| 로컬 | 지금 내 PC |
| 원격 | SSH로 연결된 서버 |
각 공간에 적용되도록 같은 동작의 명령어가 두 종류로 지원됨.
4. 원격 서버 쪽 탐색
서버 쪽 디렉토리 를 이동, 확인, 탐색:
cd /var/www
pwd
ls
의미:
cd: 서버 디렉토리 이동pwd: 서버 현재 위치ls: 서버 파일 목록
5. 로컬 PC 쪽 탐색
로컬 PC를 다룰 때는 l 이 붙음 (local에서 유래):
lcd C:\Users\bme
lpwd
lls
| 명령 | 의미 |
lcd |
로컬 PC 디렉토리 이동 |
lpwd |
로컬 PC 현재 위치 |
lls |
로컬 PC 파일 목록 |
6. 서버 → 로컬 PC : 다운로드
파일 하나:
get report.pdf
여러 개:
get *.log
폴더 전체:
get -r images
-r: recursive
서버에 있는 파일이
내 PC 현재 폴더로 다운로드됨.
7. 내 PC → 서버 : 업로드
파일 하나:
put memo.txt
폴더 전체:
put -r mydata
내 PC 파일이
서버의 현재 디렉토리로 업로드됨.
8. 서버 파일 관리
서버 쪽 파일을 직접 관리할 수 있음:
rm old.txt # 삭제
rename a.txt b.txt # 이름 변경
mkdir data # 디렉토리 생성
rmdir olddir # 빈 디렉토리 제거
9. 포트와 키 지정
SSH와 동일한 옵션으로 port와 key를 지정할 수 있음:
port:
sftp -P 2222 user@server
- 대문자
P임을 주의 - 서버 정보보다 앞에 있어야 함.
key file 파일 지정:
sftp -i ~/.ssh/mykey user@server
10. 종료
exit
또는
bye
같이보면 좋은 자료들
https://dsaint31.me/mkdocs_site/CE/ch06/ce06_2_03_Internet/?h=ftp#protocol
BME
Internet Internet은 Network 의 Network를 가리키며, 기존의 WAN들을 전세계적으로 연결한 것이 Internet임. Internet is not actually a physical network; it’s a set of layered protocols. 계층화된 프로토콜 집합이기 때문에,
dsaint31.me
'Linux' 카테고리의 다른 글
| openssh-server 설치하기 - Ubuntu (1) | 2026.01.10 |
|---|---|
| nvim에서 다른 app과 clipboard 같이 쓰기 (Linux의 xclip이용). (0) | 2026.01.09 |
| Linux 커널 관점에서 이해하는 Session, Process Group, Process, Thread와 Job Control의 실제 동작 (0) | 2026.01.09 |
| [zsh] zsh-vi-mode 설치 및 사용법 (0) | 2026.01.06 |
| WSL 배포판(distro) 백업 및 복원하기: export, import (1) | 2026.01.05 |