SFTP 명령을 사용하여 파일 전송 방법

SFTP 명령을 사용하여 파일 전송 방법

2022-06-01 last update

9 minutes reading sftp terminal ssh
SFTP(SSH 파일 전송 프로토콜)는 암호화된 SSH를 통해 파일을 액세스, 관리 및 전송하는 안전한 파일 프로토콜입니다.전통적인 FTP에 비해
프로토콜, SFTP는 FTP의 모든 기능을 제공하지만 보다 안전하고 쉽게 구성할 수 있습니다.SCP과 다르다
, 파일 전송만 지원합니다. SFTP를 사용하면 원격 파일에 대해 일련의 작업을 수행하고 파일 전송을 복구할 수 있습니다.이 강좌에서는 Linux sftp 명령을 사용하는 방법을 보여 드리겠습니다.

시작하기 전에

SFTP를 통해 파일을 전송하려면 원격 시스템에 대한 쓰기 권한이 있어야 합니다.큰 파일을 전송할 때 screen에서 sftp 명령을 실행하는 것을 권장합니다
또는 tmux
한바탕sftp 명령을 실행하는 디렉토리는 로컬 작업 디렉토리입니다.SFTP와 FTP를 혼동하지 마십시오.두 협의는 모두 같은 용도를 가지고 있다.그러나 FTPS는 표준 FTP 프로토콜의 확장으로 TLS를 지원하는 FTP 보안을 의미합니다.

SFTP 연결 설정

SFTP는 클라이언트-서버 모델에서 작동합니다.모든 SSH 인증 메커니즘을 지원하는 SSH의 하위 시스템입니다.원격 시스템에 SFTP 연결을 열려면 sftp 명령을 사용하고 원격 서버 사용자 이름과 IP 주소 또는 도메인 이름:
sftp [email protected]_ip_or_hostname
암호 확인을 사용하여 호스트에 연결하면 사용자 암호를 입력하라는 메시지가 표시됩니다.연결 후 sftp 프롬프트가 표시되고 원격 SSH 서버가 default port 22을 수신하지 않으면 원격 서버와 상호작용을 시작할 수 있습니다:
Connected to [email protected]_ip_or_hostname.
sftp>
, -P 옵션을 사용하여 SFTP 포트를 지정합니다.
sftp -P custom_port [email protected]_ip_or_hostname

SFTP 명령

대부분의 SFTP 명령은 Linux 셸 명령과 유사하거나 같습니다.사용 가능한 모든 SFTP 명령 목록을 보려면 help 또는 ?을 입력합니다.
help
이것은 모든 사용 가능한 명령의 긴 목록을 출력합니다. 각 명령에 대한 간단한 설명을 포함합니다.
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
...
...
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

SFTP 탐색 사용

원격 서버에 로그인할 때 current working directory
원격 사용자 홈 디렉토리입니다.
pwd
Remote working directory: /home/remote_username
을 입력하여 파일과 디렉터리를 열거할 수 있습니다. ls 명령:
ls
을 사용하여 다른 디렉터리로 이동하여 cd 명령을 사용하여 검사할 수 있습니다.예를 들어 /tmp 디렉터리로 전환하려면:
cd /tmp
이상의 명령을 입력하여 원격 위치를 탐색하고 처리할 수 있습니다.(adsbygoogle=window.adsbygoogle | |[]).푸시({});SFTP 셸은 로컬 탐색, 정보 및 파일 관리를 위한 명령도 제공합니다.로컬 명령의 접두사는 문자 l입니다.예를 들어, 로컬 작업 디렉토리를 인쇄하려면
cd lpwd
Local working directory: /home/local_username

SFTP를 사용하여 파일 전송

SFTP 를 입력하여 두 시스템 간에 파일을 안전하게 전송할 수 있습니다.데스크톱 컴퓨터에서 작업하는 경우 GUI SFTP 클라이언트(예: WinSCP)를 사용할 수 있습니다.
또는 FileZilla
원격 서버에 연결하여 파일을 다운로드하거나 업로드합니다.GUI가 없는 서버에서 작업하고 파일을 전송하거나 원격 파일에 대해 다른 작업을 수행하려는 경우 sftp 명령이 유용합니다.

SFTP 명령을 사용하여 파일 다운로드

원격 서버에서 단일 파일을 다운로드하려면 get 명령을 사용하십시오.
get filename.zip
출력은 다음과 같습니다.
Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip                           100%   24MB   1.8MB/s   00:13
에서 sftp 명령을 다운로드하면 sftp 명령을 입력한 디렉터리로 다운로드됩니다.다운로드한 파일을 다른 이름으로 저장하려면 새 이름을 두 번째 매개 변수로 지정하십시오.
get filename.zip local_filename.zip
원격 시스템에서 디렉터리를 다운로드하려면 귀속 -r 옵션을 사용하십시오.
get -r remote_directory
파일 전송이 실패하거나 중단되면 reget 명령을 사용하여 전송을 복구할 수 있습니다.reget의 구문은 get의 구문과 같습니다.
reget filename.zip

SFTP 명령을 사용하여 파일 업로드

로컬 컴퓨터에서 원격 SFTP 서버로 파일을 업로드하려면 put 명령을 사용하십시오.
put filename.zip
출력은 다음과 같습니다.
Uploading filename.zip to /home/remote_username/filename.zip
filename.zip                          100%   12MB   1.7MB/s   00:06
업로드할 파일이 현재 작업 디렉터리에 없으면 파일의 절대 경로를 사용하십시오.put 사용 시 get 명령에서 사용할 수 있는 동일한 옵션을 사용할 수 있습니다.로컬 디렉터리를 업로드하려면 입력:
put -r locale_directory
을 입력하여 중단된 업로드를 복구하십시오.
reput filename.zip

SFTP를 사용하여 파일 작업

은 일반적으로 원격 서버에서 작업을 수행하려면 SSH를 통해 연결하고 셸 터미널을 사용하여 작업을 수행합니다.그러나 경우에 따라 사용자는 원격 서버에서만 SFTP를 액세스할 수 있습니다.SFTP를 사용하면 기본 파일 작업 명령을 수행할 수 있습니다.다음은 SFTP 케이스를 사용하는 방법의 예입니다.
  • 에서 원격 시스템의 disk usage에 대한 정보를 얻을 수 있습니다.
    :
    df
            Size         Used        Avail       (root)    %Capacity
        20616252      1548776     18002580     19067476           7%
  • 원격 서버에서 새 디렉터리 만들기:
    mkdir directory_name
  • 원격 서버의 파일 이름 바꾸기:
    rename file_name new_file_name
  • 원격 서버의 파일 삭제:
    rm file_name
  • 원격 서버의 디렉터리 삭제:
    rmdir directory_name
  • 변경 permissions
    원격 시스템의 파일 소유자:
    chmod 644 file_name
  • 원격 시스템의 파일 소유자 변경:
    chown user_id file_name
    chown 에 사용자 ID를 제공해야 합니다.
    chgrp
    명령.
  • 원격 파일의 그룹 소유자를
    chgrp group_id file_name
  • 으로 변경한 후 bye 또는 quit을 입력하여 연결을 닫습니다.

    결론

    이 강좌에서는 sftp 명령을 사용하여 파일을 다운로드하여 원격 SFTP 서버에 업로드하는 방법을 보여 줍니다.SSH key-based authentication을 설정해야 할 수도 있습니다
    비밀번호 입력 없이 Linux 서버에 연결할 수 있습니다.동일한 시스템에 자주 접속하는 경우 SSH config file에서 모든 연결을 정의하여 작업 프로세스를 간소화할 수 있습니다.
    .질문이나 피드백이 있으면 언제든지 의견을 발표하십시오.