포트 번호가 지정된 scp
원격 서버에서 내 로컬 컴퓨터로 파일을 scp하려고합니다. 포트 80 만 액세스 할 수 있습니다.
나는 시도했다 :
scp -p 80 username@www.myserver.com:/root/file.txt .
하지만이 오류가 발생했습니다. cp: 80: No such file or directory
scp 명령에서 포트 번호를 어떻게 지정합니까?
ssh와 달리 scp는 소문자 p 대신 대문자 P 스위치를 사용하여 포트를 설정합니다.
scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default
소문자 p 스위치는 시간과 모드를 보존하기 위해 scp와 함께 사용됩니다.
다음은 두 스위치에 관한 모든 세부 사항과 scp에 대문자 P가 선택된 이유에 대한 설명이 포함 된 scp 매뉴얼 페이지에서 발췌 한 것입니다.
-P port 원격 호스트에서 연결할 포트를 지정합니다. -p는 rcp (1)에서 파일의 시간과 모드를 보존하기 위해 이미 예약되어 있기 때문에이 옵션은 대문자 'P'로 작성됩니다.
-p 원본 파일의 수정 시간, 액세스 시간 및 모드를 보존합니다.
크게 찬성 된 댓글 중 하나를 업데이트하고 옆으로 처리합니다 .
scp
옵션 주문 에 대한 Abdull의 의견과 관련하여 그는 다음과 같이 제안합니다.
scp -P80 -r some_directory -P 80 ...
..., 옵션과 매개 변수가 산재 해 있습니다. getopt(1)
매개 변수가 옵션 뒤에 와야하고 옵션과 함께 흩어져서는 안된다는 것을 명확하게 정의합니다.
getopt가 호출되는 매개 변수는 두 부분으로 나눌 수 있습니다 : getopt가 구문 분석을 수행하는 방식을 수정하는 옵션 (SYNOPSIS의 옵션 및 optstring)과 구문 분석 할 매개 변수 (SYNOPSIS의 매개 변수). 두 번째 부분은 옵션 인수가 아닌 첫 번째 비 옵션 매개 변수에서 시작하거나 '-'의 첫 번째 발생 이후에 시작됩니다. 첫 번째 부분에 '-o'또는 '--options'옵션이 없으면 두 번째 부분의 첫 번째 매개 변수가 짧은 옵션 문자열로 사용됩니다.
때문에 -r
명령 행 옵션은 더 이상 인수를 사용하지 않습니다, some_directory
"옵션 인수하지 않은 첫 번째 옵션 매개 변수"입니다. 따라서 getopt(1)
man 페이지 에 명확하게 설명 된대로 그 뒤에 오는 모든 명령 줄 인수 (예 :) -P 80 ...
는 옵션이 아닌 인수 (및 옵션이 아닌 인수 )로 간주됩니다.
따라서 실제로 다음은 getopt(1)
옵션의 끝과 회색으로 표시된 연속 텍스트로 구분 된 매개 변수의 시작이 표시된 예제를 보는 방법입니다 .
scp -P80 -r some_directory -P 80 ...
이것은 scp
POSIX 표준 응용 프로그램 getopt(3)
이 C 함수 세트를 사용하여 명령 줄 옵션을 구문 분석하는 방법과 관련된 동작 및 모든 것과 관련이 없습니다 .
명령 줄 순서 및 처리에 대한 자세한 내용은 다음을 getopt(1)
사용 하여 맨 페이지를 참조하십시오 .
man 1 getopt
추가 힌트 하나. ssh-ing하는 컴퓨터가 두 번째 컴퓨터 (대상)인지 여부에 관계없이 scp 명령 뒤에 '-P'옵션을 배치합니다. 예:
scp -P 2222 /absolute_path/source-folder/some-file user@example.com:/absolute_path/destination-folder
뭐가 더 멋진 지 알아 -P
? 아무것도
이 서버를 몇 번 이상 사용하는 경우 다음 ~/.ssh/config
과 같은 항목 으로 파일을 설정 / 생성 하십시오.
Host www.myserver.com
Port 80
또는
Host myserver myserver80 short any.name.u.want yes_anything well-within-reason
HostName www.myserver.com
Port 80
User username
그런 다음 다음을 사용할 수 있습니다.
scp username@www.myserver.com:/root/file.txt .
또는
scp short:/root/file.txt .
ssh, scp, rsync, git 등과 함께 "호스트"줄에있는 모든 것을 사용할 수 있습니다.
구성 파일에서 사용할 수있는 많은 구성 옵션이 있습니다. 다음을 참조하십시오.
man ssh_config
나는 다른 포트를 사용하고 있으며 다음과 같은 파일간에 파일을 복사합니다.
scp -P 1234 user@[ip address or host name]:/var/www/mywebsite/dumps/* /var/www/myNewPathOnCurrentLocalMachine
이것은 가끔 사용하기위한 것으로, 일정에 따라 반복되는 경우 rsync 및 cron 작업을 사용하여 수행해야합니다.
scp help tells us that port is specified by uppercase P.
~$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
Hope this helps.
for use another port on scp command use capital P like this
scp -P port-number source-file/directory user@domain:/destination
ya ali
Copying file to host: scp SourceFile remoteuser@remotehost:/directory/TargetFile
Copying file from host: scp user@host:/directory/SourceFile TargetFile
Copying directory recursively from host: scp -r user@host:/directory/SourceFolder TargetFolder
NOTE: If the host is using a port other than port 22, you can specify it with the -P option: scp -P 2222 user@host:/directory/SourceFile TargetFile
This can be achived by specifying port via the -P
switch:
scp -i ~/keys/yourkey -P2222 file ubuntu@host:/directory/
if you need copy local file to server (specify port )
scp -P 3838 /the/source/file username@server.com:/destination/file
참고URL : https://stackoverflow.com/questions/10341032/scp-with-port-number-specified
'IT박스' 카테고리의 다른 글
람다와 구별 ()? (0) | 2020.09.30 |
---|---|
커밋 메시지 내 GitHub의 문제 번호에 연결 (0) | 2020.09.30 |
Android의 인 텐트에서 추가 데이터를 얻으려면 어떻게해야합니까? (0) | 2020.09.30 |
찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (0) | 2020.09.30 |
@property와 getter 및 setter 사용 (0) | 2020.09.30 |