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手册页摘录的关于这两个开关的所有细节,以及为什么select大写P为scp的解释:

-P端口指定要在远程主机上连接的端口。 请注意,这个选项是用大写字母“P”写的,因为-p已经被保留用于保存rcp(1)中文件的时间和模式。

-p保留原始文件的修改时间,访问时间和模式。

我使用不同的端口,然后标准和复制文件之间的文件,如下所示:

 scp -P 1234 user@[ip address or host name]:/var/www/mywebsite/dumps/* /var/www/myNewPathOnCurrentLocalMachine 

这只是偶尔使用,如果它重复自己根据计划,你应该使用rsync和cron作业来做到这一点。

一个额外的提示。 在scp命令之后放置'-P'选项,无论你正在进入的机器是第二个(又名目的地)。 例:

 scp -P 2222 /absolute_path/source-folder/some-file user@example.com:/absolute_path/destination-folder 

你知道什么比-P更酷吗? 没有

如果您多次使用此服务器,请使用以下条目设置/创build~/.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&more在“Host”行上使用任何东西

有许多configuration选项可以在configuration文件中使用,请参阅:

man ssh_config

scp帮助告诉我们,端口由大写字母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 

希望这可以帮助。

将文件复制到主机: scp SourceFile remoteuser@remotehost:/directory/TargetFile

从主机复制文件: scp user@host:/directory/SourceFile TargetFile

从主机recursion复制目录: scp -r user@host:/directory/SourceFolder TargetFolder

:如果主机使用端口22以外的端口,则可以使用-P选项指定它: scp -P 2222 user@host:/directory/SourceFile TargetFile

这可以通过指定端口通过-P开关来实现:

scp -i〜/ keys / yourkey -P2222文件ubuntu @ host:/ directory /