나는 다음을 통해 내 웹 서버에 로그인했습니다.SSH라는 도구를 사용하여MobaXterm(Putty와 비슷하지만 고급 기능을 사용하면 그다지 중요하지 않습니다...)
내 문제는 내 로컬 컴퓨터(Windows)의 디렉터리를 이 서버(Linux)의 특정 디렉터리로 보내고 싶다는 것입니다.
그래서 나는scp여기에 표시된 명령은 다음과 같습니다.http://www.hypexr.org/linux_scp_help.php
나는 이런 식으로 했습니다:
-jailshell-4.1$ scp -r C:\Users\Andrea\Documents\Betrivius\candycane-0.9.6\candycane /home6/XXX/public_html
ssh: Could not resolve hostname C: Name or service not known
하지만 보시다시피 오류가 발생합니다.
왜? 내가 무엇을 놓치고 있나요? 이 문제를 어떻게 해결할 수 있나요?
Tnx
답변1
아마도 로컬 MobaXterm 쉘(예: Windows 시스템의 로컬)에서 이를 실행하고 있을 것입니다. 이 경우 구문이 올바르지 않더라도 해당 환경에 맞게 scp 명령 구문을 업데이트해야 합니다.
MobaXterm은 mountpoint를 통해 쉘의 로컬 드라이브에 대한 액세스를 제공하며 /drives/X
X는 Windows 드라이브 문자입니다.
또한 환경에 관계없이 scp의 (간소화된) 일반 구문은 다음과 같습니다.
scp 사용법:
scp [[user@]host1:]/path[/filename] [[user@]host2:]/path/[filename]
첫 번째 시퀀스( [[user@]host1:]/path[/filename]
)는 'FROM' 섹션입니다. 복사할 파일의 소스. 두 번째는 'TO'입니다. 목적지. 대괄호는 선택적 인수를 나타냅니다.
실제로는 표준 cp 명령의 SSH 지원 버전입니다. :
ssh 특정 정보를 포함하는 이전 섹션과 cp 작업과 관련된 정보를 포함합니다.
사용자:
user
기본값은 현재 로컬 사용자 이름입니다. 원본과 대상 모두에서 올바른 사용자 이름인 경우 생략할 수 있습니다.
주인:
host
기본값은 로컬 컴퓨터(localhost)입니다. 따라서 로컬 시스템으로/에서 복사하고 사용할 로컬 호스트의 사용자 이름이 현재 사용자인 경우 로컬 파일에 대한 해당 인수를 생략할 수 있습니다.
파일 경로:
path/filename
기본값은 지정된 사용자 홈 디렉터리이며 원하는 경우 생략할 수 있습니다. 상황에 따라 재귀 복사를 수행할 때 filename을 생략할 수 있습니다. 이 경우 경로만 제공하면 됩니다. 일반적으로 전체 경로와 파일 이름은 FROM 섹션에 지정되고 TO 섹션에는 경로만 지정됩니다. 기본적으로 동일한 파일 이름을 유지합니다.
나는 사용자 이름과 원격 PC 호스트 이름으로 remoteuser
및 를 사용하고 있습니다. remotePC
올바른 이름으로 바꾸십시오.
귀하의 예에서 올바른 구문은 다음과 같습니다.
scp -r "/drives/C/Users/Andrea/Documents/Betrivius/candycane-0.9.6/candycane" remoteuser@remotePC:/home6/XXX/public_html
명령을 사용 man scp
하거나이 장소추가 세부정보(인수, 기타 사용법 정보)를 확인하세요.
GUI 옵션
또는 MobaXterm은 SSH를 통해 원격 호스트에 연결할 때 끌어서 놓기 양방향 파일 전송을 제공하는 그래픽 파일 브라우저(구성 옵션에 따라 sftp 또는 scp 기반)를 제공합니다.자세한 내용은 여기.
답변2
해당 웹 서버가 Windows 시스템(포트 22에서 실행되고 포트가 전달되어야 하고 SSH 데몬이 실행되어야 함)에 직접 연결할 수 있는 방법이 없으면 Windows 측에서 SCP를 호출해야 합니다. MobaXTerm은 SSH 클라이언트입니다. SCP가 내장되어 있는지는 잘 모르겠지만(개인적으로는 사용하지 않습니다), 여기서 가장 좋은 해결책은 명령줄 클라이언트이든 GUI 클라이언트이든 SCP 클라이언트를 사용하는 것입니다.
Windows용으로 꽤 인기 있는 클라이언트는 다음과 같습니다.WinSCP, Windows를 사용할 수밖에 없을 때 내 goto 클라이언트입니다.
답변3
대답하려면
scp 명령에 오류가 발생하는 이유는 무엇입니까?
, 오류는
ssh: Could not resolve hostname C: Name or service not known
, 사용된 명령은 다음과 같습니다.
scp -r C:\Users\Andrea\Documents\Betrivius\candycane-0.9.6\candycane /home6/XXX/public_html
내가 말할 것:
구문이 C:\Users\....
잘못되었습니다. 이 맥락에서 경로를 설명하는 두 가지 가능성이 있습니다.
foo/bar/...
:foo
경로에서 볼 수 있는 디렉터리(폴더)를 의미하며, 현재 경로(pwd
) 또는 경로 env 변수(echo $PATH
)에 있을 수 있습니다./foo/bar/...
이는foo
파일 시스템의 루트에 있는 디렉터리(폴더)임을 의미합니다.
첫 번째 옵션을 사용했을 때("C:" 앞에 "/"가 없기 때문에) 쉘은 C:
경로에서 을 검색하지만 찾을 수 없습니다. 결과적으로 다른 구문과 일치하려고 시도합니다: [user@]host1:/path/..../filename
. 이 상황에서 ssh는 IP 주소를 찾을 수 없기 때문에 C:
(그것이 C:
호스트 이름이라고 생각하기 때문에) 불평합니다. 호스트 이름에 해당하는 IP 주소를 찾는 것을 "호스트 이름 확인"; 여기서는 이 해결 방법이 실패하므로 오류를 이해하게 됩니다.
답변4
Windows에서는 다음 명령이 저에게 효과적이었습니다. - scp -r "Reqd.Folder name in quote" 사용자 이름@remote_server:서버의 파일 경로
scp -r "ABC" shivam@remote_server:/media/External/shivam.
실행 전 필요한 폴더가 있는 폴더로 이동하세요.