원격 서버에서 로컬 컴퓨터로 파일을 복사하는 방법은 무엇입니까?


238

터미널 쉘에서 원격 서버로 ssh cd하고 원하는 디렉토리 로갔습니다 .

이제이 디렉토리에는 table로컬 시스템에 복사하려는 파일이 /home/me/Desktop있습니다.

어떻게해야합니까?

시도 scp table /home/me/Desktop했지만 그러한 파일이나 디렉토리가 없다는 오류가 발생했습니다.

누구든지 이것을하는 방법을 알고 있습니까?


scp를 사용하여 자주 복사하는 경우 파일 브라우저에 원격 디렉토리를 마운트하고 끌어서 놓을 수 있습니다. 내 Ubuntu 15 호스트에서 메뉴 표시 줄 "Go"> "Enter Location"> 아래에 debian@10.42.4.66:/home/debian있습니다. 또는 sshfs원격 컴퓨터의 파일 시스템을 호스트에 마운트하는 데 사용할 수 있습니다 . 그러나 그 설정은 조금 더 복잡합니다.
ConvexMartian

부여 rsync시도. 로컬 및 원격 복사 모두에 적합하며 복사 진행률 등을 제공합니다.
sakisk

답변:


380

구문 scp은 다음과 같습니다.

원격 컴퓨터로 파일을 보내려는 컴퓨터에있는 경우 :

scp /file/to/send username@remote:/where/to/put

여기서 remoteFQDN 또는 IP 주소가 될 수 있습니다.

반면에 원격 컴퓨터에서 파일을 수신하려는 컴퓨터에있는 경우 :

scp username@remote:/file/to/send /where/to/put

scp 두 원격 호스트간에 파일을 보낼 수도 있습니다.

scp username@remote_1:/file/to/send username@remote_2:/where/to/put

기본 구문은 다음과 같습니다.

scp username@source:/location/to/file username@destination:/where/to/put

이에 man scp대한 더 많은 아이디어를 얻으려면 읽을 수 있습니다 .


4
여러 파일을 복사하려면 어떻게합니까? 나는 공간을 추가하고 /file/to/send멋진 답변에 대해 다른 감사를 사용했습니다 !
camdixon

6
scp -r재귀 적으로 복사합니다.
Henry

내가 네트워크에서 VM으로 파일을 복사하고 싶은 것 ... scp를 사용하여 동일한 파일을 얻는 방법
Sushivam

2
좋은 대답을 위해 @heemayl +1. 보안 연결 (인증이 필요한 경우) 인 경우 로컬에서 원격으로 파일을 복사 할 때 다음을 사용할 수 있다고 생각했습니다. scp -i mykey.pem somefile.txt root@remotehost.ip.address : / 일부 / 폴더 /에서 / 원격
Guy Avraham

1
scp -P 123사용자 정의 포트를 지정하는 데 사용
aexl

14

rsync대안으로 사용할 수 있습니다 . 주로 파일을 동기화하기위한 것입니다. 그러나이 목적으로도 사용할 수 있습니다.

rsync -avzh --stats --progress remoteuser@remoteip  localpath 

ssh 옵션을 추가하려면 :

rsync -e "ssh -P $port_value" remoteuser@remoteip  localpath

--progress--stats전송의 실시간 디스플레이에 유용합니다.


12
scp root@10.240.179.4:/root/Jmeter/reports.jtl Downloads/

4
나는 이런 종류의 대답을 좋아한다.
xtluo

8
scp username@ipaddress:pathtofile localsystempath

scp sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

포트와 함께 사용하는 경우 :

scp -Pportnumber username@ipaddress:pathtofile localsystempath 

scp -P2233 sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

파일이 동일한 원격 디렉토리로 복사됩니다.
Max Yudin

3

네트워크의 모든 사람을 완전히 신뢰하고 대상 시스템의 포트를 직접 연결할 수있는 경우 netcat :을 사용할 수 있습니다 nc.

대상 컴퓨터의 IP 주소가 192.168.1.123이라고 가정 해 봅시다.

대상 실행에서 :

nc -l -p 7777 0.0.0.0 | tar zxvf - -C dest_dir

다른 포트를 선택할 수도 있고 인터페이스의 다른 IP에 바인딩 할 수도 있습니다. 0.0.0.0은 모든 인터페이스를 포착합니다.

소스 실행에서 :

tar zxcf - filename | nc 192.168.1.123 7777

IMHO, 이것은 디지털 네트워크를 사용하여 한 컴퓨터에서 다른 컴퓨터로 파일을 보내는 가장 빠른 방법입니다.

인수와 명령 행 옵션은 nc및의 다른 버전간에 약간 변경 될 수 tar있지만 최근 Linux 배포판에서는 확실히 작동합니다.


2

Linux에서 사용자 (이 예제의 루트) 디렉토리에서 로컬 사용자 디렉토리의 폴더로 폴더 및 해당 컨텐츠를 복사하려면 로컬 시스템에서 다음 명령을 실행하십시오.

scp -r root@178.62.54.83 : ~ / folderinremoteuserdir ~ / folderinlocaluserdir

~ /가 자주 잊어 버린 것 같습니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.