리눅스 sftp 파일 전송 - linugseu sftp pail jeonsong

scp보다 좀 더 기능이 많은 sftp도 있습니다.

sftp도 ssh를 기반으로 실행되며 sftp로 remote server로 접속 후 get 또는 put 명령으로 파일일 내려받거나 올릴 수 있습니다. shell(interactive command) 명령도 사용할 수 있습니다.

먼저 sftp로 remote server에 접속합니다.

$ sftp [email protected]
[email protected]'s password: 
Connected to [email protected].
sftp> 

sftp로 접속하면 sftp 프롬프트 창이 생성됩니다.

sftp 프롬프트 창에서 ls -al, cd, mkdir 등의 interactive command를 실행할 수 있습니다.

사용할 수 있는 interactive command 명령은 아래 링크에서 확인할 수 있습니다.

https://www.mankier.com/1/sftp#Interactive_Commands

sftp - secure file transfer program - man page | ManKier

Batch mode reads a series of commands from an input batchfile instead of stdin. Since it lacks user interaction it should be used in conjunction with non-interactive authentication to obviate the need to enter a password at connection time (see sshd(8) and

sFTP (보안 파일 전송 프로그램)는 FTP (파일 전송 프로토콜)와 유사한 방식으로 작동하는 안전한 대화 형 파일 전송 프로그램입니다. 그러나 sFTP는 FTP보다 안전합니다. 암호화 된 SSH 전송을 통해 모든 작업을 처리합니다.

공개 키 인증 및 압축과 같은 몇 가지 유용한 SSH 기능을 사용하도록 구성 할 수 있습니다. 지정된 원격 시스템에 연결 및 로그인하고 사용자가 다양한 명령을 실행할 수있는 대화 형 명령 모드로 전환합니다.

이 기사에서는 sFTP를 사용하여 전체 디렉토리 (하위 디렉토리 및 하위 파일 포함)를 업로드/다운로드하는 방법을 보여줍니다.

sFTP를 사용하여 Linux에서 파일 / 디렉토리를 전송하는 방법

기본적으로 SFTP는 원격 서버에 대한 보안 연결을 설정하기 위해 동일한 SSH 전송을 채택합니다. 기본 SSH 설정과 유사하게 사용자를 인증하는 데 비밀번호가 사용되지만, 원격 호스트에 대한보다 간단하고 안전한 연결을 위해 SSH 비밀번호없는 로그인을 생성하고 사용하는 것이 좋습니다.

원격 sftp 서버에 연결하려면 먼저 보안 SSH 연결을 설정 한 다음 그림과 같이 SFTP 세션을 생성합니다.

$ sftp [email protected]

원격 호스트에 로그인하면 아래 예제와 같이 대화 형 sFTP 명령을 실행할 수 있습니다.

sftp> ls			#list directory 
sftp> pwd			#print working directory on remote host
sftp> lpwd			#print working directory on local host
sftp> mkdir uploads		#create a new directory

전체 디렉토리를 원격 Linux 호스트에 업로드하려면 put 명령을 사용하십시오. 그러나 아래 스크린 샷과 같이 원격 호스트의 작업 디렉토리에 디렉토리 이름이 없으면 오류가 발생합니다.

따라서 로컬 호스트에서 업로드하기 전에 먼저 원격 호스트에 동일한 이름으로 디렉토리를 생성합니다. \u003ccode\u003e -r \u003c/ code\u003e가 마법을 수행하여 하위 디렉토리와 하위 파일도 복사 할 수 있도록합니다.

sftp> put -r  Tecmint.com-articles
sftp> mkdir Tecmint.com-articles
sftp> put -r Tecmint.com-articles

전송 된 원본 파일의 수정 시간, 액세스 시간 및 모드를 보존하려면 \u003ccode\u003e -p \u003c/ code\u003e 플래그를 사용하십시오.

sftp> put -pr Tecmint.com-articles

원격 Linux 호스트에서 로컬 머신으로 fstools-0.0이라는 전체 디렉토리를 다운로드하려면 다음과 같이 \u003ccode\u003e -r \u003c/ code\u003e 플래그와 함께 get 명령을 사용합니다.

파일 전송 프로토콜 (FTP)은 안전한 통신 방법이 아닌 암호화되지 않은 형식으로 파일이나 데이터를 원격으로 전송하는 데 널리 사용되는 프로토콜입니다. 모든 전송이 일반 텍스트로 이루어지고 네트워크에서 패킷을 스니핑하는 동안 누구나 데이터를 읽을 수 있기 때문에 파일 전송 프로토콜이 전혀 안전하지 않다는 것을 모두 알고 있습니다.

따라서 기본적으로 FTP는 제한된 경우 또는 신뢰할 수있는 네트워크에서 사용할 수 있습니다. 일정 기간 동안 SCP와 SSH는이 보안 모호성을 해결하고 원격 컴퓨터간에 데이터를 전송하는 동안 암호화 된 보안 계층을 추가했습니다.

SFTP (Secure File Transfer Protocol)는 기본적으로 표준 포트 22에서 SSH 프로토콜을 통해 실행되어 보안 연결을 설정합니다. SFTP는 많은 GUI 도구 (FileZilla, WinSCP, FireFTP 등)에 통합되었습니다.

보안 경고 : 보안 위반이 될 수 있으므로 전역 적으로 SSH 포트 (Secure SHell)를 열지 마십시오. "원격 시스템에서 파일을 전송하거나 관리하려는 특정 IP에 대해서만 열 수 있으며 그 반대의 경우도 마찬가지입니다.

  1. 5 Best Practices to Secure and Protect SSH Server
  2. 10 Wget Command Examples in Linux

이 기사에서는 대화 형 명령 줄 인터페이스를 통해 사용하는 10 가지 sftp 명령 예제를 안내합니다.

1. SFTP에 연결하는 방법

기본적으로 SFTP 연결을 인증하고 설정하는 데 동일한 SSH 프로토콜이 사용됩니다. SFTP 세션을 시작하려면 명령 프롬프트에서 사용자 이름과 원격 호스트 이름 또는 IP 주소를 입력하십시오. 인증에 성공하면 sftp\u003e 프롬프트가있는 셸이 표시됩니다.

[[email protected] ~]# sftp [email protected]

Connecting to 27.48.137.6...
[email protected]'s password:
sftp>

2. 도움 받기

일단 sftp 프롬프트에서 명령 프롬프트에서‘?‘또는‘help‘를 입력하여 사용 가능한 명령을 확인하십시오.

sftp> ?
Available commands:
cd path                       Change remote directory to 'path'
lcd path                      Change local directory to 'path'
chgrp grp path                Change group of file 'path' to 'grp'
chmod mode path               Change permissions of file 'path' to 'mode'
chown own path                Change owner of file 'path' to 'own'
help                          Display this help text
get remote-path [local-path]  Download file
lls [ls-options [path]]       Display local directory listing
ln oldpath newpath            Symlink remote file
lmkdir path                   Create local directory
lpwd                          Print local working directory
ls [path]                     Display remote directory listing
lumask umask                  Set local umask to 'umask'
mkdir path                    Create remote directory
put local-path [remote-path]  Upload file
pwd                           Display remote working directory
exit                          Quit sftp
quit                          Quit sftp
rename oldpath newpath        Rename remote file
rmdir path                    Remove remote directory
rm path                       Delete remote file
symlink oldpath newpath       Symlink remote file
version                       Show SFTP version
!command                      Execute 'command' in local shell
!                             Escape to local shell
?                             Synonym for help

3. 현재 작업 디렉토리 확인

‘lpwd‘명령은 로컬 현재 작업 디렉터리를 확인하는 데 사용되는 반면‘pwd‘명령은 원격 작업 디렉터리를 확인하는 데 사용됩니다.

sftp> lpwd
Local working directory: /
sftp> pwd
Remote working directory: /tecmint/
  1. lpwd – print the current directory on your system
  2. pwd – print the current directory on the ftp server

4. 파일 나열

로컬 및 원격 시스템의 파일 및 디렉토리 나열.

sftp> ls
sftp> lls

5. 파일 업로드

원격 시스템에 단일 또는 여러 파일을 넣습니다.

sftp> put local.profile
Uploading local.profile to /tecmint/local.profile

6. 여러 파일 업로드

원격 시스템에 여러 파일을 넣기.

sftp> mput *.xls

6. 파일 다운로드

로컬 시스템에서 단일 또는 여러 파일 가져 오기.

sftp> get SettlementReport_1-10th.xls
Fetching /tecmint/SettlementReport_1-10th.xls to SettlementReport_1-10th.xls

로컬 시스템에서 여러 파일을 가져옵니다.

sftp> mget *.xls

참고 : 기본적으로 동일한 이름의 로컬 시스템에서 get 명령 다운로드 파일로 볼 수 있습니다. 마지막에 이름을 지정하여 다른 이름으로 원격 파일을 다운로드 할 수 있습니다. (이는 단일 파일을 다운로드하는 동안에 만 적용됩니다.)