scp
(secure copy)指令是一种在不同主机之间进行文件传输的安全手段,基于SSH协议。使用scp
时,文件可以加密方式在本地和远程主机之间或者两台远程主机之间传输。以下是一些常见的scp
使用示例:
从本地传输到远程
-
复制本地文件到远程主机:
scp /path/to/local/file username@remote_host:/path/to/remote/directory
例如,如果你想将本地的
example.txt
文件复制到远程主机remote_host
的用户username
的家目录下,你可以使用:scp example.txt username@remote_host:~
-
复制整个本地目录到远程主机:
scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory
-r
选项表示递归复制整个目录。
从远程传输到本地
-
复制远程文件到本地:
scp username@remote_host:/path/to/remote/file /path/to/local/directory
例如,将远程主机
remote_host
上的example.txt
文件复制到本地当前目录:scp username@remote_host:example.txt .
-
复制整个远程目录到本地:
scp -r username@remote_host:/path/to/remote/directory /path/to/local/directory
在两台远程主机之间传输文件
如果你需要从一台远程主机传输文件到另一台远程主机,你可以通过以下方式(假设你有权访问这两台远程主机):
scp username1@remote_host1:/path/to/remote/file username2@remote_host2:/path/to/another/remote/directory |
一些有用的选项
-
-P port
:如果远程服务器的SSH服务不使用默认端口(22),你可以使用这个选项指定端口。scp -P 2222 /path/to/local/file username@remote_host:/path/to/remote/directory
-
-i identity_file
:用于指定SSH私钥,当你需要用特定的密钥进行身份验证时。scp -i /path/to/private_key /path/to/local/file username@remote_host:/path/to/remote/directory
-
-C
:启用压缩。 -
-q
:静默模式,不显示传输进度和错误信息。 -
-v
:详细模式,显示传输的详细信息。
确保在使用scp
之前,本地和远程主机之间的SSH连接是通畅的,并且你有足够的权限读取源文件和写入目标目录。