SSH를 통한 파일 전송 [닫힘]


461

명령 줄에서 원격 서버로 SSH 연결하고 명령을 사용하여 디렉토리를 로컬 컴퓨터에 복사하려고합니다 scp. 그러나 원격 서버는 다음 "사용"메시지를 반환합니다.

[Stewart:console/ebooks/discostat] jmm% scp -p ./styles/
usage: scp [-1246BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 [...] [[user@]host2:]file2
[Stewart:console/ebooks/discostat] jmm%

양방향으로 파일을 전송할 수 있기를 원합니다. 내가 읽은 내용에서 위의 명령이 다운로드 및 scp -p [localpath] [remotepath]업로드에 효과적이라고 생각 합니까?

답변:


734

scp어딘가에 뭔가 가 필요합니다 . 당신은 scp ./styles/, 그래서 당신은 안전한 사본을 말하고 ./styles/있지만 어디로 복사해야합니까?

일반적으로 다운로드하려면 다음을 수행하십시오.

# download: remote -> local
scp user@remote_host:remote_file local_file 

local_file. 실제로 당신이 복사하는 파일을 넣어 디렉토리 수 있습니다 업로드하려면, 그것은 반대입니다 :

# upload: local -> remote
scp local_file user@remote_host:remote_file

전체 디렉토리를 복사하려면가 필요합니다 -r. 로컬 파일뿐만 아니라 파일도 지정할 수 있다는 점을 제외하고 scp는 같은 것으로 생각 하십시오.cpuser@remote_host:file

편집 : 주석에서 언급했듯이 로컬 및 원격 호스트의 사용자 이름이 동일하면 원격 파일을 지정할 때 사용자를 생략 할 수 있습니다.


2
사용자가 원격 호스트와 로컬 호스트에서 동일하면 사용자 이름을 생략 할 수 있습니다. scp hello.c myserver.net:~/projects/
strager

예, 사실, 이에 대한 메모를 추가하겠습니다. 내가 준 예제가 항상 작동하기 때문에 사용자를 포함 시켰습니다. :)
lemnisca

나는 이것에 어려움을 겪고있다. 이것이 맞다. scp C : \ filename.txt server1 @ server2 : home
Vincent

"donload"및 "upload"에 굵게 서식을 추가하십시오.
kursus 2014 년

2
"자연스럽게"(이것은 15 분만 낭비했기 때문에 자연스럽게 말합니다) 원격 인스턴스에서 코드를 실행하는 경우 "local"은 로컬로 "다운로드"를 시도하는 동안 원격 호스트에 연결해서는 안됩니다. 내가 무슨 뜻인지 알면 "원격"으로 해석됩니다. 그래서 하지 않는 첫 번째 SSH를 실행합니다.
PatrickT

164

데스크톱 시스템에서 복사하거나 데스크톱 시스템에서 복사하는 경우 WinSCP를 사용하거나 Linux의 경우 노틸러스는 서버에 연결 옵션을 통해 SCP를 지원합니다.

scp는 sshd를 실행하는 시스템에만 파일을 복사 할 수 있으므로 scp를 실행중인 시스템에서 원격 시스템의 클라이언트 소프트웨어를 실행해야합니다.

명령 행에 복사하는 경우 다음을 사용하십시오.

# copy from local machine to remote machine
scp localfile user@host:/path/to/whereyouwant/thefile

또는

# copy from remote machine to local machine
scp user@host:/path/to/remotefile localfile

4
당신은 남자입니다. 서버쪽에 추가 설치없이 10 초 이내에 블로그를 배포했습니다!
PM

2
이것은 완벽하게 작동했습니다. scp와 ssh가 모두 있기 때문에 cmd에서 msysgit을 사용했습니다.
Ibn Saeed

3
이것은 완벽하게 작동했습니다. 나는 scp * user @ host : / path / to / where를 사용했다
Bastin Robin

3
그게 가장 정답입니다.
gsamaras 2016 년

3
WinSCP 제안에 감사드립니다. 모든 명령을 수동으로 작성하는 것보다 쉬운 방법 ...
Brian Leishman

23

소스와 대상을 모두 지정해야하며 디렉토리를 복사하려면 -r 옵션을 확인해야합니다.

따라서 원격 서버에서 현재 디렉토리로 / home / user /를 재귀 적으로 복사하려면 다음을 수행하십시오.

scp -pr user@remoteserver:whatever .

19

아니요, scp [from] [to]복사하는 방법 에 관계 없이 여전히 필요합니다

차이점은 scp -p server:serverpath localpath


8
-p의 목적은 무엇입니까?
Qinjie 2016 년

1
From man scp: 원본 파일의 수정 시간, 액세스 시간 및 모드를 유지합니다.
pjmil

4
-pOP는 원래 질문에 플래그를 포함했기 때문에 명확하게 여기에 포함됩니다. 답변과 관련이 없습니다
Gareth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.