본문 바로가기
IT/OS

[Unix] MacOS에서 sftp로 원격서버 파일 업로드/다운로드 방법

by 퐁시냥 2022. 4. 26.

Unix 계열의 운영체제, MacOS에서 sftp로 원격서버에 파일을 업로드, 다운로드(upload, download) 할 수 있는 방법을 소개한다. 

맥북과 같은 Unix 계열의 운영체제에서는 sftp 커맨드를 사용하여 별도 설치없이 아주 간단하게 사용할 수 있다. 

 

 

0. SFTP란? 

SFTP(Secure File Transfer Protocol)

SFTP란 SSH 파일 전송 프로토콜으로 클라이언트-서버간에 안전한 파일 교환을 제공하는 네트워크 계층 프로토콜이다. 

SFTP를 사용하면 SSH 방식을 이용하여 암호화된 구간에서 안전하게 FTP 기능을 이용할 수 있다. 

 

SFT-Unix-MacOS-File-Upload-Download
SFT-Unix-MacOS-File-Upload-Download

 

1. 원격 서버 접속

먼저 sftp 커맨드를 사용하여 원격 서버에 접속을 해야한다. 

SSH 방식을 이용하여 접속하기 때문에 기본적인 접속 방법은 SSH와 동일하다. 

sftp remote_username@server_ip_or_hostname

 

방화벽이 차단되어 있다면, 일반적으로 22번 포트가 열려있어야 접속이 가능하다. 

기본적으로 22번 포트로 통신을 시도하기 때문에, 다른 포트로 연결하려면 아래 처럼 -P 옵션을 사용하면 된다. 

sftp -P custom_port remote_username@server_ip_or_hostname

 

MacOS에서 sftp 명령어 사용방법(usage)은 아래와 같으니 참고하자. 

usage: sftp [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
          [-D sftp_server_path] [-F ssh_config] [-i identity_file]
          [-J destination] [-l limit] [-o ssh_option] [-P port]
          [-R num_requests] [-S program] [-s subsystem | sftp_server]
          destination

 

 

2. SFTP 파일 업로드 

SFTP로 서버에 파일을 업로드 하는 방법은 간단하다. 

바로 put 커맨드를 이용하는 것이다. 

 

1) SFTP 단일 파일 업로드

SFTP로 단일파일을 업로드하기 위해서는 put 명령어를 입력하면 된다. 

원격 서버의 업로드 경로를 변경하면 cd 커맨드를 이용하여 디렉토리를 변경하거나, 서버의 절대 경로를 입력한다. 

sftp> put filename.zip

sftp 커맨드를 실행한 내 로컬PC 상대 경로에 filename.zip 파일이 있어야 한다. 

상대경로에 해당 파일이 없다면, 절대 경로로 입력하면 된다.

 

정상적으로 업로드가 되는 경우에 아래와 같이 업로드된 이력을 커맨드로 볼 수 있다.

Uploading filename.zip to /home/remote_username/filename.zip
filename.zip                          100%   12MB   1.7MB/s   00:06

 

2) SFTP 디렉토리 파일 업로드(SFTP Upload Multiple Files)

SFTP를 이용하여 디렉토리 내의 여러 파일을 업로드 할 수 있다. 

sftp> put -r local_directory/

 

3. SFTP 파일 다운로드

SFTP로 단일파일을 다운로드하기 위해서는 get 명령어를 입력하면 된다. 

sftp> get filename.py

절대경로를 지정하지 않으면 다운로드 경로는 sftp 커맨드를 실행한 디렉토리에 다운로드가 된다. 

위의 내용 처럼 cd 명령어를 이용하여 원격 서버 디렉토리 이동 후, 다운로드 받을 절대 경로를 입력하면 된다.

 

내 로컬PC에 저장할 때 원격 서버의 파일명과 다른 파일명으로 저장하려면 아래와 같이 로컬 파일명을 설정해줄 수 있다.

sftp> get filename.zip local_filename.zip

 

정상적으로 파일을 다운로드 받았을 때 아래 커맨드를 확인할 수 있다. 

Fetching /opt/web/filename.py to filename.py
/opt/web/filename.py                          100% 1155    70.0KB/s   00:00

 

또한, SFTP 로 연결 후에도 Linux/Unix 운영체제에서 사용하는 커맨드 df, mkdir, rm, chmod, chown 과 같은 커맨드를 사용할 수 있으니 참고하자. 

 

 

참고 

 

댓글