SFTP 커맨드 치트시트

치트시트의 다운로드는 여기로

SFTP는, Unix/Linux 서버간의 표준적인 접속 방법인 안전한 파일 전송 프로토콜인 SSH(보안 쉘)를 기반으로 하고 있습니다. 클라이언트 서버 아키텍처에서 실행되기에  클라이언트가 서버에 연결하여 파일을 업로드하거나 다운로드합니다. 또한 SFTP 클라이언트를 사용하면 파일 일람 및 삭제, 디렉토리 생성, 파일 소유자 및 권한 변경이 가능합니다.

SFTP 세션을 시작하려면 암호 인증 옵션을 사용하거나 암호가 없는 SFTP 로그인을 위한 SSH 키를 만듭니다.

SFTP에 연결하는 방법은 다음과 같습니다:

  • CLI (Command Line Interface) - 최근 운영 체제에는 SFTP CLI 프로그램이 기본 설치되어 있으며 사용자는 텍스트 명령을 이용해 SFTP 서버와 통신할 수 있습디다.
  • GUI (Graphical User Interface) - 마우스나 트랙패드와 같이 GUI디바이스에 의한 드래그&드롭으로 파일 일람, 다운로드, 다운로드를 할 수 있습니다. 가장 유명한 SFTP GUI 클라이언트로는 Filezilla와 Cyberduck가 있습니다.
  • 프로그래밍 라이브러리 - 프로그래머가 코드 내에서 SFTP 서버와 상호작용하기 위한 표준 프로그래밍 라이브러리가 대부분의 프로그래밍 언어로 제공됩니다.

이 글에서는 CLI를 중심으로 이야기 하겠습니다.

시작하기 전에

명령줄을 시작하려면 [터미널 앱](Windows에서는 [cmd], Mac 및 Linux에서는 [Terminal])을 열고 sftp user@host/remote-dir을 입력합니다. (각 항목에 유저이름, sftp 호스트 이름 및 원격 디렉토리로 바꾸십시오). 그런 다음 선택한 비밀번호를 입력하거나 개인키/공개키의 인증옵션을 사용하여 로그인합니다.

한 번 입력하면 여기서부터는 간단합니다. 한 번이라도 각 명령의 의미를 이해하면 명령 줄을 사용하는 것은 매우 간단합니다. 이 기사에서는 필수적이고 유용한 명령을 모두 설명합니다.

참고: 일부 명령에는 인수가 있습니다 (걱정하지 마세요. 무엇을 하는지에 대해서도 설명해 드립니다). 선택적 인수(즉, 지정을 안해도 되는)는 <괄호>로 묶여 있습니다.

파일 일람

명령: ls <options> <path>

Is는 원격 서버의 현재 디렉토리 내용을 나열합니다.

인수없이 ls를 사용하면 현재 디렉토리에 있는 모든 파일이 정렬 없이 표시됩니다. 현재 디렉토리를 변경하려면 다음과 같은 cd 명령을 사용하십시오.

ls명령을 사용하는 경우 다음과 같이 두 가지 옵션 인수를 사용할 수 있습니다:

  1. <options> - <options> 인수는 다음 옵션 중 하나 또는 그 조합을 지정합니다. 예를 들어, 명령 `-alt` 는 허용 범위내입니다.
  • -1 - 파일 리스트를 1열로 표시
  • -a - 모든 파일을 표시. 점(.)으로 시작하는 비표시파일도 포함.
  • -h - 파일크기를 알기 쉽게 표시
  • -l - 긴 나열형식으로 파일크기나 읽기/쓰기 권한 등을 포함

아래 옵션을 이용하여, 리스트 내의 파일순서를 변경합니다.

  • -s - 파일크기순으로 나열
  • -t - 최종변경시간으로 나열
  • -r - 역순으로 정렬

Use the following options to change the order of files in the list:

  • -S - Sort list by file size
  • -t - Sort list by last modification time
  • -r - Sort in reverse order
  1. <path> - ls 명령에 path 인수를 전달하면 지정된 원격 경로의 파일 목록을 볼 수 있습니다. ls -l 명령을 사용하면 다음과 같이 디렉토리 파일 목록이 표시됩니다.
sftp> ls -l /outgoing-invoices
-rwxr--r--   1        -        -    21451 Nov 24 08:28 inv-UIf2IS.json
-rwxr--r--   1        -        -    69070 Nov 22 09:12 inv-UPrGAT.json
-rwxr--r--   1        -        -    15714 Jul 14 15:18 inv-v5rg8c.j

참고: 사용자 컴퓨터의 파일을 나열하려면 sftp 콘솔 ls 대신 lls에서 사용합니다.

디렉토리 전환

명령: cd path

원격 서버의 한 디렉토리에서 다른 디렉토리로 전환하려면 cd를 사용합니다.

전체 절대 경로를 디렉토리로 전환하려면 경로 앞에 /를 붙이는 것으로 디렉토리의 풀・절대경로의 전환이 가능합니다. 상대 경로(현재 디렉토리에 있는 디렉토리)로 전환하려면 단지 이름을 입력하기만 하면 됩니다.

예 :

sftp> cd outgoing-invoices


명령: lcd path

lcd는 사용자 컴퓨터의 활성 디렉토리 변경 이외에는 cd와 비슷합니다.

예:

sftp> lcd /Users/john/Documents/invoices

파일 다운로드 및 업로드

명령: get remote-file <local-dir>

Get은 원격 서버에서 로컬 컴퓨터로 단일 또는 여러 파일을 다운로드합니다. get명령에는 다음과 같이 두 개의 인수가 있습니다.

  1. remote-file: 다운로드 할 원격 파일의 경로. 단일 명령으로 여러 파일을 다운로드하려면 remote-file 인수에 와일드카드(*)를 추가합니다. 이 인수는 필수입니다.
  2. <local-dir>: 다운로드한 파일이 있는 사용자 컴퓨터의 대상 디렉토리입니다. 지정하지 않을 경우, 파일이 자동으로 현재의 로컬 디렉토리로 다운로드됩니다. 이 인수는 생략 가능합니다.

예 :

sftp> get inv-UIf2IS.json
Fetching /outgoing-invoices/inv-UIf2IS.json to inv-UIf2IS.json
/inv-UIf2IS.json                                                                                                                                          100% 21451     9.1KB/s   00:00   

다음 예제에서는 와일드 카드를 사용하여 파일이름이 inv로 시작하는 모든 json 파일을 다운로드합니다:

sftp> get inv*.json

명령: put local-file <remote-path>

로컬 컴퓨터에서 원격 호스트에 단일 또는 여러 파일을 업로드하려면 put을 사용합니다. put명령에는 다음 두 개의 인수를 추가할 수 있습니다.

  1. local-file: 업로드할 로컬 파일의 경로. 단일 명령으로 여러 파일을 업로드하려면 와일드카드(*)를 사용합니다.
  2. <remote path>: 원격 서버에 업로드된 파일을 배치하는 대상 디렉토리입니다. 지정하지 않으면 파일이 자동으로 현재 원격 디렉토리에 업로드됩니다.

예 :

sftp> put inv-jKv72b.json /outgoing-invoices/
Uploading inv-jKv72b.json to /outgoing-invoices/inv-jKv72b.json
inv-jKv72b.json                                                                                                                                           100% 34596     9.0KB/s   00:00 
보안성과 안정성을 극대화한 SFTP To Go
SFTP To Go는 관리형 SFTP/FTPS/S3를 서비스 형태로 제공하며, 최고의 안정성, 보안, 가용성, 1분 만에 설치가 가능하며 모든 규모의 기업에 적합합니다.
지금 바로 SFTP To Go를 사용해 보세요!

현재 작업디렉토리 확인

명령: pwd

이 명령은 원격 호스트의 현재 작업디렉토리 경로를 표시합니다.

예 :

sftp> pwd
Remote working directory: /outgoing-invoices

명령: lpwd

lpwd는 로컬 컴퓨터의 현재 작업디렉토리를 표시합니다.

예 :

sftp> lpwd
Local working directory: /Users/john/Documents/invoices

디렉토리 작성 / 삭제

명령: mkdir remote-path

원격 시스템에 새 디렉토리를 작성합니다.

예 :

sftp> mkdir outgoing-invoices

명령: rmdir remote-path

원격 호스트의 빈 디렉토리를 삭제합니다. 디렉토리가 비어 있지 않으면 오류 메시지가 표시됩니다.

예:

sftp> rmdir dummy-dir

파일 삭제

명령: rm remote-path

원격 호스트에서 단일 또는 다중 파일을 삭제합니다. get명령과 마찬가지로 와일드카드(*)도 사용할 수 있습니다.

예:

sftp> rm inv-jKv72b.json
Removing /outgoing-invoices/inv-jKv72b.json

연결해제

명령: quit or bye

SFTP 서버의 파일 작업이 끝나면 연결을 닫고 SFTP CLI 프로그램을 종료합니다.

sftp> quit
Simple, isn't it?


이 가이드에서 자주 사용되는 SFTP 명령이 얼마나 쉬운지 이제 아셨으리라 생각합니다. 꼭 명령줄 인터페이스를 사용해보세요!

인쇄 가능한 치트시트 다운로드는 여기를 클릭하십시오.