什么是Scp命令
Scp是Secure Copy的首字母缩写,是基于Linux的操作系统中的命令行实用程序,允许用户在远程主机和本地主机之间复制文件。由于该命令通过网络将文件传输到其他主机,因此需要SSH访问。SSH(安全外壳)是允许您通过任何网络安全地处理网络服务的协议。
scp命令还支持一些其他功能,例如指定身份验证参数,更改端口,传输目录等。
为什么Scp比其他方法更好
与其他文件传输方法相比,通常首选Scp,因为在传输过程中,两个主机之间的连接是加密的。SSH协议负责加密文件,密码和任何其他敏感信息。
其他传输方法(例如Telnet或FTP)没有任何加密。同样,用户/密码密钥对也以纯文本格式保存,这根本不是一个好习惯。黑客可以通过嗅探网络轻松地访问您的信息。
如何使用Scp安全传输文件
使用scp命令,您可以在以下之间传输文件:
- 本地主机和远程主机
- 远程主机和本地系统
- 两台远程主机
基本语法
scp命令的基本语法为:
scp [options] [source] [destination]
从本地主机传输到远程系统
如果您是服务器管理员,则在本地主机和远程主机之间传输文件可能对您有用。要将名为document.txt的文件上传到远程主机,请执行以下操作:
scp /home/document.txt user@remote-host:/home/document.txt
请注意,源是本地存储上文件的路径。目标是远程主机上文件的路径。您还必须指定远程服务器的用户名和域名。在上面的命令中,user是用户名,remote-host是域名。
目标路径是从使用远程主机细节分离冒号字符(:)。请记住,如果您要成功传输文件,则用户必须存在于远程服务器上。此外,用户应该对要在其中保存文件的目录具有写访问权。
发出上述命令后,系统将要求您提供远程用户的密码。输入密码,然后按Enter键。
user@remote-host's password:
如果密码有效,则文件传输将初始化。如果输入了错误的密码,将会发生错误。
在尝试使用scp命令复制文件之前,请使用SSH登录到服务器,以确保远程主机的详细信息和密码正确无误。
从远程主机到本地主机
要将文件从远程主机复制到本地主机,只需在scp命令中互换源路径和目标路径即可。
scp user@remote-host:/home/document.txt /home/document.txt
系统将再次询问您远程用户的密码。输入密码以确认传输过程。
在两个远程主机之间
要在两个远程服务器之间复制文件,源路径和目标路径都必须是远程主机上的目录。
scp user1@remote-host1:/home/document.txt user2@remote-host2:/home/folder/document.txt
再次出现提示,要求您输入两个用户的密码。
Scp命令行选项
除了简单地将文件从源传输到目标外,scp还具有一些其他选项,可以使用特定参数来调用这些选项。
更改端口
默认情况下,scp命令在端口22上运行。但是,您始终可以覆盖默认配置并更改端口。该-P标志允许你这样做。
在将文件从本地主机复制到远程主机时,要使用其他端口号:
scp -P 35 /home/document.txt user@remote-host:/home/document.txt
上述命令将确保scp命令使用端口35传输文件。
保留文件时间戳
您可能知道Linux为每个文件设置了时间戳,以存储与文件关联的修改时间,访问时间和更改时间。当您使用scp将文件传输到另一个位置时,目标文件的时间戳将被当前时间覆盖。
如果出于任何原因要保留这些时间戳记,请使用-p标志。注意-P和-p标志彼此不同。
scp -p /home/document.txt user@remote-host:/home/remote/document.txt
复制目录
如果要复制目录而不是文件,请使用-r标志以递归方式传输目录。
scp -r user@remote-host:/home/videos /home/videos
抑制模式
当您输入scp命令以传输文件时,终端将在屏幕上显示进度条和其他相关信息。但是,您可以选择不使用-q标志查看此信息。
scp -q user@remote-host:/home/document.txt /home/document.txt
使用密钥对文件进行身份验证
如果要使用密钥对文件验证远程主机连接,请使用-i标志指定文件的路径。
scp -i /home/keypair.pem /home/document.txt user@remote-host:/home/document.txt
将多个标志链接在一起
就像任何其他Linux命令一样,您可以将多个参数链接在一起,以使scp命令更有效。
例如,要更改端口并以禁止模式传输文件:
scp -P 34 -q user@remote-host:/home/document.txt home/document.txt
如果要使用密钥对文件进行身份验证,并且需要将目录复制到目标路径,请执行以下操作:
scp -i /home/secret/keypair.pem -r /home/folder user@remote-host:/home/folder
Linux系统之间的文件传输
在Internet的世界中,在系统之间传输文件已成为一项必不可少的任务。对于正在管理Linux服务器的用户来说,有时在发出特定命令之前对服务器进行备份很重要。在这种情况下,scp命令会派上用场。
同样,cp命令有助于将文件从一个位置复制到本地系统中的另一个位置。如果您刚开始使用Linux,则必须使用许多基本命令。