소개
이 랩에서는 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 로 파일 전송하기
원격 서버에 연결되면 put 및 get 명령을 사용하여 파일을 전송할 수 있습니다.
로컬 머신에서 원격 서버로 파일을 업로드하려면 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 를 이용한 파일 전송 방법
원격 서버에 연결되면 put 및 get 명령을 사용하여 파일을 전송할 수 있습니다.
로컬 머신에서 원격 서버로 파일을 업로드하려면 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]
source 및 destination 인자는 로컬 파일이나 디렉토리일 수도 있고, username@host:path 형식의 원격 파일이나 디렉토리일 수도 있습니다.
예를 들어, 로컬 머신의 file.txt 파일을 IP 주소가 127.0.0.1인 원격 서버로 복사하려면 다음 명령어를 사용합니다.
labex사용자의 비밀번호를 확인하려면 데스크톱 터미널에서printenv | grep PASSWORD를 입력하세요. 데스크톱 인터페이스 외부의 다른 터미널에서는 비밀번호를 확인할 수 없습니다.

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 명령과 함께 사용할 수 있는 몇 가지 고급 옵션도 다루었습니다.



