scp를 사용하여 서버에서 파일을 가져 오는 방법은 무엇입니까?


31

나는 컴퓨터 A에 있고 컴퓨터 B에서 파일을 가져오고 싶습니다.

A$ scp <myuserid>@hostB:<path of file in B> .

그것은 말합니다 :

scp: <path of file in B>: No such file or directory

그러나 시스템 B에서이 파일은이 경로에 있습니다.

무슨 일이야?


실행 한 명령의 정확한 형식입니까? 또는 ':'다음에 파일 이름이 있었습니까?
dtyler

답변:


43

파일을 지정하지 않았습니다. 콜론 뒤에 파일을 경로와 함께 추가해야합니다.

A$ scp <myuserid>@hostB:/absolutepath/file .

또는

A$ scp <myuserid>@hostB:relativepath/file .

홈 디렉토리와 관련된 경로.

다른 사용자를 지정하지 않은 경우 (즉, A와 B의 사용자가 동일 함) @

A$ scp hostB:/path/file .

2
질문의 서식을 수정했지만 귀하의 답변이 여전히 유효 할 수 있습니다. 문제는 절대 경로와 상대 경로 (집으로가는 경로)가 혼동되어 발생할 수 있습니다.
Stéphane Gimenez

@ StéphaneGimenez 이제 편집 된 답변을 이해합니다. 이상한 질문 인 것 같습니다 :-)
Matteo

4
$ scp username@remoteip:remote_location_file /location/where/you/save

파일을 복사 할 때만 작동합니다. 디렉토리 사용을 복사하려는 경우

$ scp -r username@remoteip:remote_location_directory /location/where/you/save

필요에 따라 사용할 수있는 옵션

-P port
원격 호스트에서 연결할 포트를 지정합니다. -p는 rcp에 파일의 시간과 모드를 보존하기 위해 이미 예약되어 있으므로이 옵션은 대문자 "P"로 작성됩니다.

-p
원본 파일의 수정 시간, 액세스 시간 및 모드를 유지합니다.

-r
전체 디렉토리를 반복적으로 복사합니다.

-V

상세 모드. scp 및 ssh가 진행 상황에 대한 디버깅 메시지를 인쇄합니다. 연결, 인증 및 구성 문제를 디버깅하는 데 도움이됩니다.


1
OP는 디렉토리가 아닌 파일 복사를 요청했습니다.
카운터 모드

2

적절한 scp 경로를 사용하십시오

scp ssh://user@hostname/tmp/foo.txt .

1

홈 디렉토리에 상대적인 파일 경로 또는 절대 파일 경로를 지정할 수 있습니다. 예를 들어, foo.txt라는 디렉토리에 docs홈 디렉토리 및 bar.txt/var/tmp, 당신은 할 수있다

scp username@host.example.com:docs/foo.txt .
scp username@host.example.com:/var/tmp/bar.txt .

파일 이름에 원격 셸에 특수한 문자 (일반적으로 공백 또는 !"#$&'*;<>?[\]^`{|}~)가 포함 된 경우 로컬 셸에서 이스케이프하는 것 외에도 원격 셸에서 이스케이프해야합니다. 예를 들어, 파일이 호출 foo bar.txt되고 홈 디렉토리에있는 경우 :

scp username@host.example.com:'foo\ bar.txt' .

문장 부호 문자가 포함 된 파일에 문제가 있으면 파일 을 전송하는 sftp대신 사용하십시오 scp. 또는 FUSE 를 사용할 수있는 경우 훨씬 편리한 방법을 사용하십시오. sshfs를 사용하여 원격 시스템의 파일 시스템을 마운트 한 후 일반 파일 조작 명령을 사용하십시오.

mkdir host.example.com
sshfs username@host.example.com:/ host.example.com
cp host.example.com/path/to/file .

1

DMZ 사용자와 암호가있는 경우 SCP를 쉽게 사용할 수 있습니다. DMZ에서 로컬 Linux 시스템으로 (풀). folder2 내의 abc.text를 현재 로그인 한 PWD로 복사하는 것을 의미합니다.

scp user@111111:folder1/folder2/abc.txt .

비밀번호를 묻습니다

그게 다야

이제 로컬 컴퓨터에서 DMZ로 폴더 하위 폴더와 파일을 보내려고합니다.

usr @ localmachine : ~ / abc / defs> scp -r 폴더 / usr @ 111111 : vkrishna / docker /

다시 비밀번호를 묻습니다

:는 원격 시스템의 루트 폴더이고 vkrishna는 그 폴더이며 다시 도커 하위 폴더입니다. 로컬 defs 폴더에는 완전히 전송하려는 "폴더"라는 폴더가 있습니다.

/ abc / defs / folder처럼

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