本文以使用scp的例子介绍使用scp命令安全地传输带有参数的文件。
前言 scp命令用于将一台计算机之间的文件和目录复制到另一台计算机,这个实用程序有价值的是它使用ssh来隧道复制(安装与使用Mole在Linux CLI上创建SSH隧道的方法),这意味着数据是加密的,因为它依赖于ssh的安全功能,在开始使用scp命令之前,请确保将接收文件/目录的计算机/主机安装了sshd并正在侦听。
你可以使用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命令经常能派上用场,特别是远程复制文件,关于将重要数据从一个主机传输到另一个主机,再也不会感到困难了。
相关主题 |