Env Setting

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

Ccomment 2017. 1. 13. 19:35

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 : 로컬 서버의 파일 목록 출력
  • !{명령어} : 로컬 서버에서 실행