본문 바로가기
목차
Linux

sftp - Secure FTP

by ds31x 2026. 1. 10.
728x90
반응형

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. scpsftp의 차이

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

 

728x90