본문 바로가기

Env Setting

[Env Setting] SFTP명령을 이용한 파일 전송

SFTP란?

sftp 명령은 ftp와 유사한 사용자 인터페이스가 있는 대화식 파일 전송 프로그램이다. 하지만 sftp는 SSH FTP(File Transfer Protocol)를 사용하여 서버에 대한 보안 연결을 만든다. ftp 명령으로 사용할 수 있는 옵션 중 일부는 sftp 명령에 포함되어 있지 않지만 대부분의 명령이 포함되어 있다.


1. 테스트 환경 준비

테스트 환경은 Linux(ubuntu14.04)<->라즈베리파이3(raspbian) 이다.

SFTP 명령을 사용하기 전에 SSH 환경 설정이 되어 있어야 한다.

SSH 환경 설정은 http://cccding.tistory.com/97에서 확인한다.

리눅스와 라즈베리파이가 모두 부팅되어있어야하고, 리눅스에서 라즈베리파이로 접속할 것이기 때문에 라즈베리파이에서 다음의 명령어를 입력한다.

$ ifconfig 

 

 

위의 그림 처럼 IP를 확인할 수 있다.

 

2. SFTP 접속

2-1. 일반 Port로 SFTP 접속

리눅스에서 터미널 창을 열고 다음의 명령어를 입력한다.

$ sftp pi@192.168.1.3 

 

sftp 다음의 pi는 라즈베리파이의 계정을 나타내며, @ 뒤에 IP는 라즈베리파이의 IP이다.

 

 

위의 그림처럼 비밀번호를 입력하고 나면 'sftp>'의 형식으로 커맨드 라인이 변한걸 확인할 수 있다.

 

2-2. 특정 Port로 SFTP 접속

특정 port로 접속할 경우 다음의 명령어를 입력하면 된다.

$ sftp -oPort=[포트번호] [사용자계정@호스트주소] 

 

2-1과 마찬가지로 비밀번호를 입력하면 'sftp>'의 형식으로 커맨드 라인이 변한것을 확인할 수 있다. 단지 port가 다를뿐이다.

 

 

3. SFTP 사용법

1) 특정 파일 다운로드

get 명령어를 이용해 파일을 다운로드 하기 위해선 다음과 같이. 이 때, sftp 접근했던 경로에 파일을 다운로드 한다.

sftp> get [파일이름] 

 

다음의 명령어를 입력한 경우 아래의 그림과 같이 다운로드 된것을 확인할 수 있다.

sftp> get /home/pi/Picture/a.png 

 

 

2) 특정 파일 업로드

put 명령어를 이용해 파일을 업로드 하기 위해서 다음과 같이 입력한다. 이 때, sftp 접근했던 경로에 파일을 업로드 한다.

sftp> put [파일이름] 

 

3) 그외 명령어

  • mget : 다수의 파일을 다운로드
  • mput : 다수의 파일을 업로드
  • ls : 접속한 sftp의 파일 목록 출력
  • !ls : 로컬 서버의 파일 목록 출력
  • !{명령어} : 로컬 서버에서 실행