云网牛站
所在位置:首页 > Linux命令 > 使用scp命令安全地传输带有参数的文件

使用scp命令安全地传输带有参数的文件

2019-07-26 21:19:57作者:范义稿源:云网牛站

本文以使用scp的例子介绍使用scp命令安全地传输带有参数的文件。

 

前言

scp命令用于将一台计算机之间的文件和目录复制到另一台计算机,这个实用程序有价值的是它使用ssh来隧道复制(安装与使用Mole在Linux CLI上创建SSH隧道的方法),这意味着数据是加密的,因为它依赖于ssh的安全功能,在开始使用scp命令之前,请确保将接收文件/目录的计算机/主机安装了sshd并正在侦听。

使用scp命令安全地传输带有参数的文件

你可以使用ssh密钥或密码验证方式,scp的语法非常简单:

scp [OPTIONS] [files or directories] [user@remotehost]:[directory]

scp的各种选项如下:

-3:两个远程主机之间的副本通过localhost传输,如果没有此选项,则会直接在两个远程主机之间复制数据,请注意,此选项会禁用进度表。

-4:强制scp仅使用IPv4地址。

-6:强制scp仅使用IPv6地址。

-B:选择批处理模式(防止要求密码或密码短语)。

-C:压缩启用,将-C标志传递给ssh(1)以启用压缩。

-c cipher:选择用于加密数据传输的密码,此选项直接传递给ssh(1)。

-F ssh_config:为ssh指定备用的每用户配置文件,此选项直接传递给ssh(1)。

-i identity_file:选择从中读取公钥认证的标识(私钥)的文件,此选项直接传递给ssh(1)。

-l limit:限制使用的带宽,以Kbit/s为单位。

-o ssh_option:可用于以ssh_config(5)中使用的格式将选项传递给ssh,这对于指定没有单独的scp命令行标志的选项很有用。

-P port:指定要在远程主机上连接的端口,请注意,此选项使用大写P编写,因为-p已保留用于保留文件的时间和模式。

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

-q:安静模式:禁用进度表以及来自ssh(1)的警告和诊断消息。

-r:递归复制整个目录。

-T:禁用严格的文件名检查。

-v:详细模式,导致scp和ssh打印有关其进度的调试消息。

 

使用scp的例子

指定远程ssh主机使用的默认端口,参数v在这里增加了详细程度:

scp -Pv 2023 /home/tech/index.html tech@192.168.20.10:/var/www/html

将目录复制到远程主机:

scp -Pr 2023 /home/tech/website/ tech@192.168.20.10:/tmp/

将文件从远程主机复制到本地计算机:

scp tech@192.168.20.10:/tmp/index.html /home/tech/website

使用scp,你可以在两个远程主机之间复制文件:

scp tech1@192.168.20.10:/var/log/messages tech2@192.168.20.30:/tmp/logs/

如果你希望上述远程文件远程传输通过本地计算机,则添加-3参数,如下所示:

scp -3 tech1@192.168.20.10:/var/log/messages tech2@192.168.20.30:/tmp/logs/

如果你希望保留原始文件中的访问时间,修改时间和模式,请使用小p参数:

scp -pv /home/tech/index.html tech@192.168.20.10:/tmp/

scp可以在传输文件时利用ssh的压缩功能:

scp -Cr /home/tech/website/ tech@192.168.20.10:/tmp/ ## Passes the -C flag to ssh to enable compression.

要在使用scp时禁用进度表以及来自ssh的警告和诊断消息,请使用-q参数:

scp -pqr /home/tech/website/ tech@192.168.20.10:/tmp/

 

结语

scp命令经常能派上用场,特别是远程复制文件,关于将重要数据从一个主机传输到另一个主机,再也不会感到困难了。

 

相关主题

ubuntu中运用scp命令管理多个vps的文件

Linux命令子频道
精选文章
热门文章