Linux에서 scp 명령을 사용하는 방법

Linux에서 scp 명령을 사용하는 방법

이 명령 scp을 사용하면 Linux 시스템 간에 파일을 간단하고 안전하게 복사할 수 있습니다. SSH 보안을 사용하지만 가장 좋은 점은 간단합니다. 사용할 수 있으면 사용할 cp수 있습니다 scp.

보안 복사 프로토콜 및 scp

몇 가지 용어를 정의해 보겠습니다. SCP가 있고 가 scp있습니다. 대문자 SCP는 Secure Copy Protocol의 약자입니다 . 소문자 scp는 보안 을 의미 cp합니다. 즉, SCP는 프로토콜이자 scp프로그램입니다.

scp원격 Linux 컴퓨터 간에 파일을 복사하는 안전하고 신뢰할 수 있는 수단으로 설계되었습니다. SSH를 사용하여 보안 연결을 설정합니다. SSH 또는 보안 셸은 원격 Linux 컴퓨터에 액세스하고 로그인하는 데 자주 사용되는 암호화 네트워크 프로토콜입니다. Linux 배포에서 SSH 기능은 OpenSSH에 의해 제공됩니다.

SCP는 다소 구식이며 요즘 사용에 대한 우려가 제기되었습니다. OpenSSH 8.8부터 SCP는 더 이상 사용되지 않습니다. 최신 구현 scp은 기본적으로 보안 파일 전송 프로토콜을 사용합니다. SSH는 여전히 보안 연결에 사용되지만 파일 전송은 SFTP를 통해 수행됩니다. 그것은 모두 보이지 않으며 후드 아래에서 마술처럼 발생하며 scp구문은 동일하게 유지됩니다.

rsync프로그램이 선호 되지만 이 프로그램이 설치되지 않고 루트 권한이 없어 설치할 수 없는 scp컴퓨터를 만날 수 있습니다. rsync오프라인 네트워크에서 PC에서 PC로 파일을 복사하는 scp것은 괜찮습니다. 작업 하려면 scp복사할 모든 컴퓨터에서 SSH가 실행되고 있어야 합니다.

컴퓨터에 설치된 OpenSSH 버전을 보려면 다음을 입력하십시오.

ssh -V

단일 파일 복사

표준 cp명령 과 마찬가지로 scp원본 위치에서 대상으로 파일을 복사합니다. 원격 컴퓨터에 파일을 복사하려면 원격 컴퓨터의 IP 주소 또는 네트워크 이름을 알아야 합니다. 또한 파일을 업로드할 위치에 대한 쓰기 권한이 있는 사용자 계정에 대한 자격 증명이 있어야 합니다.

“sample.txt”라는 파일을 로컬 네트워크의 “fedora-34″라는 컴퓨터로 보내려면 다음 구문을 사용하십시오.

scp. /sample.txt dave@fedora-34.local:/home/dave/Downloads/

팀 구성:

  • scp: scp 명령
  • ./sample.txt: 보낼 파일입니다. 현재 디렉토리에 있습니다.
  • dave@: 파일을 보낼 원격 시스템의 사용자 계정.
  • fedora-34.local: 원격 컴퓨터의 네트워크 이름입니다.
  • :/home/dave/Downloads/: 원격 시스템에서 파일을 복사할 위치입니다. 컴퓨터 이름과 경로를 구분하는 콜론 “:”에 유의하십시오.

원격 컴퓨터의 계정 암호를 입력하라는 메시지가 표시되면 파일이 복사됩니다.

파일이 원격 시스템에서 다른 이름을 갖도록 하려면 파일 이름을 대상 경로에 추가할 수 있습니다. 동일한 파일을 복사하고 이름을 “other-file.txt”로 지정하려면 다음 구문을 사용하십시오.

scp. /sample.txt dave@fedora-34.local:/home/dave/Downloads/different-file.txt

이 명령 scp은 기존 파일을 자동으로 덮어쓰므로 파일을 복사할 때 주의하십시오. 복사한 파일과 이름이 같은 파일이 대상 컴퓨터에 이미 있는 경우 덮어써서 손실됩니다.

대상 컴퓨터가 기본 SSH 포트 22를 사용하지 않는 경우 -P(포트 번호) 매개변수를 사용하여 적절한 포트 번호를 지정할 수 있습니다.

하나의 파일 가져오기

원격 서버에서 파일을 복사하려면 원격 서버를 원본으로 지정하고 파일을 복사할 로컬 경로를 대상으로 지정하기만 하면 됩니다. 우리는 “development-plan.md”라는 파일을 원격 시스템에서 로컬 시스템의 현재 디렉토리로 복사할 것입니다.

scp dave@fedora-34.local:/home/dave/Downloads/development-plan.md.

로컬 경로에 파일 이름을 추가하면 파일이 복사되어 해당 이름이 지정됩니다.

scp dave@fedora-34.local:/home/dave/Downloads/development-plan.md. /dp-1.md

파일이 복사되지만 우리가 지정한 파일 이름으로 이름이 바뀝니다.

ls -hl *.md

여러 파일 복사

어떤 방향으로든 여러 파일을 복사하는 것은 매우 쉽습니다. 원하는 만큼 소스 파일을 나열할 수 있습니다. 여기에서 두 개의 마크다운 파일과 CSV 파일을 복사합니다.

scp. /dp-1.md. /dp-2.md. /dp-3.csv dave@fedora-34.local:/home/dave/Downloads/

세 개의 파일이 원격 컴퓨터에 복사됩니다. 와일드카드를 사용할 수도 있습니다. 이 명령은 이전 명령과 동일합니다.

scp. /dp. dave@fedora-34.local:/home/dave/Downloads/

디렉토리의 재귀 복사

( -r재귀) 옵션을 사용하면 단일 명령으로 전체 디렉토리 트리를 복사할 수 있습니다. “data”라는 디렉토리에 두 개의 파일을 배치하고 “data” 디렉토리 안에 “CSV”라는 디렉토리를 생성했습니다. CSV 파일을 “data/CSV” 디렉토리에 배치했습니다.

이 명령은 파일을 복사하고 원격 컴퓨터의 디렉터리 구조를 다시 만듭니다.

scp -r. /data dave@fedora-34.local:/home/dave/Downloads/

원격 서버 간에 파일 복사

scp한 원격 서버에서 다른 서버로 파일 을 복사하도록 지시할 수도 있습니다 . 구문은 매우 간단합니다. 원본 서버의 계정 이름과 네트워크 주소, 대상 서버의 계정 이름과 네트워크 주소를 제공합니다. 파일이 원본 서버에서 복사되어 대상 서버의 위치로 복사됩니다.

구문은 간단하지만 다른 모든 것이 제자리에 있는지 확인하려면 조금 더 생각해야 합니다. 분명히 원격 서버에서 파일을 복사하려는 위치는 명령줄에서 지정한 사용자 계정으로 액세스할 수 있어야 합니다. 그리고 해당 사용자 계정에는 해당 위치에 대한 쓰기 권한이 있어야 합니다.

더 미묘한 전제 조건은 SSH 액세스가 로컬 시스템과 소스 시스템 사이, 그리고 소스 서버와 대상 서버 간에 설정되어야 한다는 것입니다. SSH를 사용하여 소스 서버에서 대상 서버에 로그인할 수 있는지 확인하십시오. 이 작업을 수행할 수 없으면 scp연결할 수 없습니다.

인증되었지만 암호가 없는 액세스를 허용하도록 SSH 키를 설정하는 것이 가장 선호되는 방법입니다. 암호 사용은 매우 빠르게 혼란스러워지며 모든 사용자 계정에 대해 암호를 입력하라는 메시지가 표시되기 때문에 스크립트로 프로세스를 완전히 자동화할 수 없습니다.

각 원격 서버에서 사용하는 사용자 계정에 대해 SSH 키를 설정합니다. 이것은 두 사용자에게 다른 서버에 대한 원활한 SSH 액세스를 제공했습니다. 이를 통해 이 두 사용자 계정을 사용하여 양방향으로 파일을 전송할 수 있습니다.

로컬 Ubuntu 시스템에서 발행된 명령 을 사용하여 Manjaro 시스템의 “davem” 사용자 계정에서 Fedora 시스템의 “dave” 계정으로 파일을 복사하려면 scp다음 구문이 사용됩니다.

scp davem@manjaro20-0-1.local:/home/davem/man. dave@fedora-34.local:/home/dave/

우리는 조용히 명령줄로 돌아갑니다. 아무 일도 일어나지 않았다는 표시가 없습니다. 좋은 소식이 없다는 가정 하에 scp이 원격 복사본에 대한 오류만 보고합니다. Fedora 컴퓨터를 확인하면 Manjaro 컴퓨터에서 파일이 복사되어 검색된 것을 볼 수 있습니다.

기본적으로 파일은 원본 컴퓨터에서 대상 컴퓨터로 직접 복사됩니다. -3(3방향) 옵션 을 사용하여 이를 무시할 수 있습니다 .

이 옵션을 사용하면 파일이 로컬 컴퓨터를 통해 대상에서 소스로 전송됩니다. 이를 위해서는 로컬 머신에서 대상 머신으로의 원활한 SSH 액세스가 필요합니다.

scp -3 davem@manjaro20-0-1.local:/home/davem/man. dave@fedora-34.local:/home/dave/

로컬 컴퓨터를 통해 파일을 전송할 때에도 여전히 아무 일도 일어나지 않았다는 표시가 없습니다. 푸딩의 증거는 물론 대상 컴퓨터를 확인하는 것입니다.

다른 옵션

( -p파일 속성 보존) 옵션은 업로드된 파일에 대한 원본 파일 생성, 소유자 및 액세스 플래그를 보존합니다. 원본 컴퓨터의 원본 파일과 동일한 메타데이터를 갖게 됩니다.

오류 메시지가 표시되면 명령을 다시 시도하고 -v(상세) 플래그를 사용하여 전송 시도에 대한 세부 정보를 확인하십시오. 출력에서 실패 지점을 결정할 수 있어야 합니다.

(압축) 옵션 은 -C파일을 복사할 때 압축하고 파일을 받으면 압축을 풉니다. 이것은 컴퓨터 간의 느린 모뎀 통신 시대로 거슬러 올라가는 것입니다. 페이로드 크기를 줄이면 전송 시간을 줄일 수 있습니다.

현재 파일 압축 및 압축 해제에 소요되는 시간은 압축된 전송과 압축되지 않은 전송의 차이보다 더 많을 것입니다. 그러나 scp동일한 로컬 네트워크에 있는 컴퓨터 간에 파일을 복사하는 데 가장 잘 사용되기 때문에 전송 속도는 큰 문제가 되지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다