SW/리눅스

Linux : SCP 명령어로 안전하게 파일 전송하는 방법, 예제, 명령어

얇은생각 2021. 1. 16. 07:30
반응형

SCP(보안 복사)는 두 위치 간에 파일과 디렉터리를 안전하게 복사할 수 있는 명령줄 유틸리티입니다.

scp를 사용하여 파일 또는 디렉토리를 복사할 수 있습니다.

 

- 로컬 시스템에서 원격 시스템으로 이동합니다.

- 원격 시스템에서 로컬 시스템으로 이동합니다.

- 로컬 시스템의 두 원격 시스템 사이에 있습니다.

 

scp를 사용하여 데이터를 전송할 때 파일과 암호가 모두 암호화되므로 트래픽을 스누핑하는 모든 사용자가 중요한 정보를 얻지 못합니다. 

이 튜토리얼에서는 가장 일반적인 scp 옵션에 대한 실제 예와 자세한 설명을 통해 scp 명령을 사용하는 방법을 보여 줍니다.

 

 

Linux : SCP 명령어로 안전하게 파일 전송하는 방법, 예제, 명령어

 

 

SCP 명령 구문

scp 명령 사용 방법에 대해 살펴보기 전에 먼저 기본 구문을 검토하겠습니다.

scp 명령 구문은 다음 형식을 사용합니다.

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

 

 

- option - scp 옵션(암호, ssh 구성, ssh 포트, 제한, 재귀 복사본 등)입니다.

- [user@]SRC_입니다.HOST:]file1 - 원본 파일입니다.

- [user@]DEST_HOST:]file2 - 대상 파일입니다.

 

로컬 파일은 절대 또는 상대 경로를 사용하여 지정해야 하며, 원격 파일 이름에는 사용자 및 호스트 사양이 포함되어야 합니다. 

scp는 동작의 모든 측면을 제어하는 여러 옵션을 제공합니다. 가장 널리 사용되는 옵션은 다음과 같습니다.

 

-P - 원격 호스트 ssh 포트를 지정합니다.

-p - 파일 수정 및 액세스 시간을 유지합니다.

-q - 진행률 미터 및 오류 이외의 메시지를 표시하지 않으려면 이 옵션을 사용합니다.

-C - 이 옵션을 사용하면 scp가 대상 시스템으로 전송되는 데이터를 압축할 수 있습니다.

-r - 이 옵션은 scp에 디렉터리를 반복적으로 복사하도록 지시합니다.

 

 

 

시작하기 전에 다음을 수행

scp 명령은 데이터 전송에 ssh를 사용하므로 원격 시스템에서 인증하려면 ssh 키 또는 암호가 필요합니다.

콜론(:)은 scp가 로컬 위치와 원격 위치를 구별하는 방법입니다.

파일을 복사하려면 소스 파일에 대한 읽기 권한과 대상 시스템에 대한 쓰기 권한이 있어야 합니다.

두 시스템에서 동일한 이름 및 위치를 공유하는 파일을 복사할 때 주의합니다. scp는 경고 없이 파일을 덮어씁니다.

대용량 파일을 전송할 때는 화면 또는 tmux 세션 내에서 scp 명령을 실행하는 것이 좋습니다.

 

 

 

scp를 사용하여 두 시스템 간에 파일 및 디렉토리를 복사

scp 명령을 사용하여 로컬 파일을 원격 시스템에 복사합니다.

로컬에서 원격 시스템으로 파일을 복사하려면 다음 명령을 실행합니다.

scp file.txt remote_username@10.10.0.2:/remote/directory

 

 

파일입니다.txt는 복사하려는 파일의 이름이고, remote_username은 원격 서버의 사용자이며, 10.10.0.2는 서버 IP 주소입니다. /remote/directory는 파일을 복사할 디렉토리의 경로입니다. 원격 디렉터리를 지정하지 않으면 파일이 원격 사용자 홈 디렉터리에 복사됩니다.

사용자 암호를 입력하라는 메시지가 표시되고 전송 프로세스가 시작됩니다.

remote_username@10.10.0.2's password:
file.txt                             100%    0     0.0KB/s   00:00

 

 

대상 위치에서 파일 이름을 생략하면 파일이 원래 이름으로 복사됩니다. 파일을 다른 이름으로 저장하려면 새 파일 이름을 지정해야 합니다.

scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt

 

 

원격 호스트의 SSH가 기본 22가 아닌 다른 포트에서 수신 대기 중인 경우 -P 인수를 사용하여 포트를 지정할 수 있습니다.

scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory

 

 

 

디렉터리를 복사하는 명령은 파일을 복사할 때와 유사합니다. 유일한 차이점은 재귀에 -r 플래그를 사용해야 한다는 것입니다.

로컬 시스템에서 원격 시스템으로 디렉터리를 복사하려면 -r 옵션을 사용합니다.

scp -r /local/directory remote_username@10.10.0.2:/remote/directory

 

 

 

scp 명령을 사용하여 원격 파일을 로컬 시스템에 복사

원격에서 로컬 시스템으로 파일을 복사하려면 원격 위치를 원본으로 사용하고 로컬 위치를 대상으로 사용합니다.

예를 들어 파일 이름을 복사하는 것입니다.IP 10.10.0.2를 사용하는 원격 서버에서 txt를 실행하면 다음 명령이 실행됩니다.

scp remote_username@10.10.0.2:/remote/file.txt /local/directory

 

 

원격 시스템에 대한 암호 없는 SSH 로그인을 설정하지 않은 경우 사용자 암호를 입력하라는 메시지가 표시됩니다.

 

 

 

scp 명령을 사용하여 두 원격 시스템 간에 파일을 복사

rsync와는 달리 scp를 사용할 때는 서버 중 하나에 로그인하여 한 원격 컴퓨터에서 다른 원격 컴퓨터로 파일을 전송할 필요가 없습니다.

다음 명령은 /files/file을 복사합니다.txt는 원격 호스트 host2.com에서 원격 호스트 host2.com의 디렉토리 /files로 이동합니다.

scp user1@host1.com:/files/file.txt user2@host2.com:/files

 

 

두 원격 계정의 암호를 입력하라는 메시지가 표시됩니다. 데이터는 한 원격 호스트에서 다른 원격 호스트로 직접 전송됩니다.

명령이 실행된 시스템을 통해 트래픽을 라우팅하려면 -3 옵션을 사용합니다.

scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files

 

반응형