안전한 파일 전송 기본

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 명령줄을 사용하여 SFTP, FTP 및 SCP 를 통해 파일을 전송하는 기본 사항을 다룹니다. 이러한 도구는 원격 서버로 파일을 전송하거나 원격 머신에서 파일을 다운로드하는 데 일반적으로 사용되며, 웹사이트 파일을 서버에 업로드하거나 원격 머신에서 데이터를 다운로드하는 등의 작업에 유용할 수 있습니다.

랩 환경에 SFTP 및 FTP 서버를 구성했습니다. 실제로 사용할 때는 원격 서버에 액세스하는 데 필요한 자격 증명 (예: 사용자 이름 및 비밀번호) 이 있는지, 그리고 서버가 SFTP, FTP 및 SCP 를 통해 파일 전송을 허용하도록 구성되었는지 확인하십시오.

성과

  • sftp - 보안 파일 전송 프로토콜 (Secure File Transfer Protocol)
  • ftp - 파일 전송 프로토콜 (File Transfer Protocol)
  • scp - 보안 복사 (Secure Copy)

SFTP 로 원격 서버에 연결하기

SFTP (Secure File Transfer Protocol) 는 로컬 머신과 원격 서버 간에 파일을 안전하게 전송하는 방법입니다.

SFTP 를 사용하여 원격 서버에 연결하려면 sftp 명령 다음에 사용자 이름과 서버의 IP 주소 또는 호스트 이름을 입력합니다. 예를 들어:

sftpuser 의 비밀번호는 123456입니다.

sftp sftpuser@127.0.0.1
## Type yes to accept the server's fingerprint

사용자의 비밀번호를 묻는 메시지가 표시됩니다. 올바른 비밀번호를 입력하면 원격 서버에 연결됩니다.

SFTP 로 파일 전송하기

원격 서버에 연결되면 putget 명령을 사용하여 파일을 전송할 수 있습니다.

로컬 머신에서 원격 서버로 파일을 업로드하려면 put 명령 다음에 로컬 파일의 경로를 사용합니다. 예를 들어:

put /home/labex/.zshrc

원격 서버에서 로컬 머신으로 파일을 다운로드하려면 get 명령 다음에 원격 파일의 경로를 사용합니다. 예를 들어:

get .zshrc

파일 전송을 완료했으면 exit 명령을 사용하여 SFTP 연결을 닫을 수 있습니다.

exit

"계속" 버튼을 클릭하기 전에 SFTP 연결을 닫으십시오.

FTP 를 사용하여 원격 서버에 연결하기

FTP (File Transfer Protocol) 는 로컬 머신과 원격 서버 간에 파일을 전송하는 데 사용되는 표준 네트워크 프로토콜입니다. SFTP 보다 안전하지 않은데, 데이터를 일반 텍스트로 전송하기 때문입니다.

다음 명령을 실행하여 FTP 서비스의 상태를 확인할 수 있습니다.

sudo service vsftpd status

FTP 서비스가 실행 중이지 않은 경우, 다음 명령을 실행하여 시작할 수 있습니다.

sudo service vsftpd start

FTP 를 사용하여 원격 서버에 연결하려면 ftp 명령 다음에 서버의 IP 주소 또는 호스트 이름을 입력합니다. 예를 들어:

ftp 의 사용자 이름은 ftpuser이고 비밀번호는 123456입니다.

ftp 127.0.0.1

서버의 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 올바른 자격 증명을 입력하면 원격 서버에 연결됩니다.

FTP 를 이용한 파일 전송 방법

원격 서버에 연결되면 putget 명령을 사용하여 파일을 전송할 수 있습니다.

로컬 머신에서 원격 서버로 파일을 업로드하려면 put 명령 다음에 로컬 파일의 경로를 사용합니다. 예를 들어:

## .zshrc 파일을 서버에 업로드하고 이름을 zshrc-upload로 변경합니다.
put /home/labex/.zshrc zshrc-upload

파일은 서버의 현재 디렉토리 (/home/ftpuser) 에 업로드됩니다.

원격 서버에서 로컬 머신으로 파일을 다운로드하려면 get 명령 다음에 원격 파일의 경로를 사용합니다. 예를 들어:

get zshrc-upload

파일은 로컬 머신의 현재 디렉토리로 다운로드됩니다.

FTP 셸에서 help 명령을 실행하여 FTP 명령에 대해 자세히 알아보세요.

파일 전송을 완료했으면 bye 또는 exit 명령을 사용하여 FTP 연결을 닫을 수 있습니다.

bye

"계속" 버튼을 클릭하기 전에 FTP 연결을 닫으십시오.

원격 서버로 파일 복사하기

SCP(Secure Copy)는 로컬 머신과 원격 서버 간, 또는 두 원격 서버 간에 파일을 안전하게 전송할 수 있는 명령줄 유틸리티입니다. SSH(Secure Shell)를 사용하여 전송되는 데이터를 암호화하므로 파일을 안전하게 주고받을 수 있습니다.

scp 명령어의 기본 구문은 다음과 같습니다.

scp [options] [source] [destination]

sourcedestination 인자는 로컬 파일이나 디렉토리일 수도 있고, username@host:path 형식의 원격 파일이나 디렉토리일 수도 있습니다.

예를 들어, 로컬 머신의 file.txt 파일을 IP 주소가 127.0.0.1인 원격 서버로 복사하려면 다음 명령어를 사용합니다.

labex 사용자의 비밀번호를 확인하려면 데스크톱 터미널에서 printenv | grep PASSWORD를 입력하세요. 데스크톱 인터페이스 외부의 다른 터미널에서는 비밀번호를 확인할 수 없습니다.

SCP command example

cd ~/project

## View the password for the labex user
printenv | grep PASSWORD

## Copy the file to the remote server
scp file.txt labex@127.0.0.1:/home/labex/file-scp.txt

## Enter the password for the labex user

원격 서버에서 파일 다운로드 (SCP 명령어 사용법)

scp 를 사용하여 원격 서버에서 파일을 다운로드할 수도 있습니다.

예를 들어, IP 주소가 127.0.0.1 인 원격 서버에서 file.txt 파일을 로컬로 다운로드하려면 다음 명령을 사용합니다.

scp labex@127.0.0.1:/home/labex/file-scp.txt /home/labex/file-scp-new.txt

로컬 디렉토리를 대상으로 설정할 수도 있으며, 경로에 후행 슬래시 (/) 를 포함해야 합니다.

SCP 고급 옵션 (SCP 명령어 사용법)

scp는 파일 전송을 사용자 정의하는 데 사용할 수 있는 몇 가지 고급 옵션도 있습니다. 가장 일반적으로 사용되는 옵션 중 일부는 다음과 같습니다.

  • -r - 이 옵션을 사용하면 전체 디렉토리를 재귀적으로 복사할 수 있습니다.
  • -C - 이 옵션은 파일 전송 중에 압축을 활성화하며, 느린 연결을 통해 큰 파일을 전송할 때 유용할 수 있습니다.
  • -P - 이 옵션을 사용하면 연결에 대한 포트 번호를 지정할 수 있습니다.

예를 들어, 압축을 사용하고 포트 번호를 지정하여 로컬 머신에서 IP 주소가 127.0.0.1 인 원격 서버로 ~/Desktop 디렉토리를 복사하려면 다음 명령을 사용합니다.

scp -r -C -P 22 ~/Desktop labex@127.0.0.1:/home/labex/Code/

요약

이 랩에서는 로컬 머신과 원격 서버 간 또는 두 개의 원격 서버 간에 파일을 전송하는 데 사용되는 Linux SFTP, FTP 및 SCP 명령을 소개했습니다. SFTP 는 파일을 전송하는 안전한 방법인 반면, FTP 는 SFTP 보다 안전성이 떨어지는 표준 네트워크 프로토콜입니다. SCP 는 SSH (Secure Shell) 를 사용하여 전송되는 데이터를 암호화하여 로컬 머신과 원격 서버 간 또는 두 개의 원격 서버 간에 안전하게 파일을 전송할 수 있는 명령줄 유틸리티입니다. 또한 -r, -C-P 옵션과 같이 파일 전송을 사용자 정의하는 데 사용할 수 있는 SCP 명령과 함께 사용할 수 있는 몇 가지 고급 옵션도 다루었습니다.