跳到主要内容

Linux SCP 命令教程:安全地传输文件 🚀

SCP(Secure Copy Protocol)是用于在网络中进行加密的文件传输协议,通常用于在本地和远程主机之间安全地复制文件。它基于 SSH 协议,因此数据在传输过程中会被加密,保证了文件的安全性。🔐

在这篇教程中,我们将深入学习 scp 命令的常用用法和一些实用技巧,帮助你高效、安全地传输文件。📁

1. SCP 基本用法

信息

命令格式很简单: 1.左边发,右边接。 2.写主机名的是远程主机,忽略主机名的是本机主机。

从本地复制文件到远程主机

本地文件 ~/app/Chatbox.AppImage 发送到📁 远程主机的主目录。

scp 发送文件 远程主机:接收目录
$ scp ~/app/Chatbox.AppImage user@myserver:~
Chatbox.AppImage 100% 100MB 111.5MB/s 00:00
提示
  1. 在 SCP 中可以使用 ~ 表示用户主目录,但是有的传输命令是不可以的,遇到的时候要注意。

  2. .ssh/config 中定义主机别名,写起来更加简单,而且可以使用 Tab 补全:

    对比
    scp 发送文件 主机别名:目录
    scp 发送文件 用户名@主机名:目录

从远程主机复制文件到本地

从远程主机复制文件到本地也很简单:

scp 远程主机:发送文件 接收目录

例如:

scp user@192.168.1.10:~/file.txt .

使用别名让命令更简洁明了:

scp remote-server:~/file.txt .
scp格式总结:

左发右接,不写本地主机。

scp 本地文件 远程主机:接收目录

scp 远程主机:发送文件 本地目录

复制目录(递归复制)

如果你想复制整个目录,可以使用 -r 选项来递归复制目录中的所有内容,例如:

scp -r myfolder remote-server:~

通过指定端口进行 SCP 连接

如果远程服务器使用了非默认的 SSH 端口,你可以使用 -P 选项来指定端口。

例如,使用端口 2222file.txt 复制到远程主机:

scp -P 2222 file.txt remote-server:~

2. SCP 进阶用法与实用技巧

限制传输带宽

如果你希望限制文件传输的带宽,可以使用 -l 选项(单位是 Kbit/s)。

例如,限制带宽为 500 Kbit/s:

scp -l 500 file.txt remote-server:~

显示传输进度

如果你需要查看传输进度,使用 -v 选项,SCP 会打印出详细的执行过程:包括连接过程、传输速率等。

使用 SSH 密钥认证

为了避免每次都输入密码,你可以使用 SSH 密钥认证。确保你已经生成了 SSH 密钥对,并将公钥添加到远程服务器的 ~/.ssh/authorized_keys 文件中。然后直接使用 scp 命令进行文件传输:

scp file.txt remote-server:~

如果 SSH 密钥已经配置好,你将不再需要输入密码,文件会直接传输。

同时传输多个文件

你可以同时传输多个文件到远程服务器,使用空格分隔文件列表:

scp file1.txt file2.txt file3.txt remote-server:~

使用代理跳板(跳转主机)

如果你需要通过一个中间的跳板主机连接到目标服务器,可以使用 -J 选项。

例如,先通过 jump-host 连接到目标服务器:

scp -J jump-host file.txt remote-server:~

3. 总结 🌟

SCP 是一种强大的工具,可以安全地在本地和远程主机之间传输文件。通过合理使用常见选项,结合加密和认证机制,SCP 可以高效且安全地完成文件复制任务。你还可以使用进阶技巧优化带宽、查看进度和传输多个文件。

希望这篇教程能帮助你熟练掌握 scp 命令,让你在文件传输时更加得心应手!🔐

希望这篇教程对你有所帮助!别忘了收藏在线知识库www.zxzsk.com )哦!😊