scp with port number specified
我正在尝试将文件从远程服务器scp到本地计算机。只有端口80可以访问。
我试过:
1 | scp -p 80 [email protected]:/root/file.txt . |
但得到了这个错误:
如何在scp命令中指定端口号?
与ssh不同,scp使用大写的p开关来设置端口,而不是小写的p:
1 | scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default |
小写的p开关与scp一起使用,用于保存时间和模式。
以下是SCP手册页的摘录,其中包含有关两个开关的所有详细信息,以及为什么选择大写P作为SCP的解释:
-P port Specifies the port to connect to on the remote host. Note that this option is written with a capital 'P', because -p is already
reserved for preserving the times and modes of the file in rcp(1).-p Preserves modification times, access times, and modes from the original file.
更新并搁置以解决其中一个(严重反对)意见:
关于Abdull对
1 | scp -P80 -r some_directory -P 80 ... |
…,分散选项和参数。
The parameters getopt is called with can be divided into two parts: options which modify the way getopt will do the parsing (the options and the optstring in the SYNOPSIS), and the parameters which are to be parsed (parameters in the SYNOPSIS). The second part will start at
the first non-option parameter that is not an option argument, or after the first occurrence of '--'. If no '-o' or '--options' option is found in the first part, the first parameter of the second part is used as the short options string.
由于
因此,实际上,这就是
SCP-P80-R
这与
有关命令行排序和处理的更多详细信息,请阅读
1 | man 1 getopt |
另外一个提示。将'-p'选项放在scp命令之后,不管您要ssh进入的机器是否是第二台机器(也就是目的地)。例子:
1 | scp -P 2222 /absolute_path/source-folder/some-file [email protected]:/absolute_path/destination-folder |
你知道什么比
如果您多次使用此服务器,请设置/创建一个带有如下条目的
1 2 | Host www.myserver.com Port 80 |
或
1 2 3 4 | Host myserver myserver80 short any.name.u.want yes_anything well-within-reason HostName www.myserver.com Port 80 User username |
然后您可以使用:
或
您可以将"主机"行上的任何内容与ssh、scp、rsync、git等一起使用
在配置文件中可以使用许多配置选项,请参见:
我正在使用不同的端口,然后是标准端口,并在以下文件之间复制文件:
1 | scp -P 1234 user@[ip address or host name]:/var/www/mywebsite/dumps/* /var/www/myNewPathOnCurrentLocalMachine |
这只是偶尔使用,如果它根据调度重复自己,您应该使用rsync和cron作业来完成它。
SCP帮助告诉我们端口是由大写的P指定的。
1 2 3 4 | ~$ 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 |
希望这有帮助。
要在scp命令上使用另一个端口,请使用类似capital p的命令
1 | scp -P port-number source-file/directory user@domain:/destination |
雅丽
正在将文件复制到主机:
从主机复制文件:
从主机递归复制目录:
注意:如果主机使用的端口不是端口22,则可以使用-p选项指定它:
如果需要将本地文件复制到服务器(指定端口)
1 | scp -P 3838 /the/source/file [email protected]:/destination/file |
这可以通过通过
1 | scp -i ~/keys/yourkey -P2222 file ubuntu@host:/directory/ |