在 Linux 系统中,scp
(Secure Copy Protocol)是 OpenSSH 工具套件的一部分,用于通过 SSH 协议在本地和远程系统之间安全传输文件,大多数 Linux 发行版默认预装 OpenSSH 客户端(包含 scp
),但若未安装或需重新安装,可按以下步骤操作:
打开终端,执行以下命令:
which scp
或
scp --version
- 若返回路径(如
/usr/bin/scp
)或版本信息,表示已安装,无需操作。 - 若提示
command not found
,则需安装 OpenSSH 客户端。
安装 OpenSSH 客户端(包含 scp)
根据您的 Linux 发行版选择对应命令:
Debian/Ubuntu 系
sudo apt update && sudo apt install openssh-client -y
RHEL/CentOS/Fedora 系
- CentOS/RHEL 7/8 或 Fedora:
sudo yum install openssh-clients -y
- CentOS/RHEL 9 或 Fedora(使用 DNF):
sudo dnf install openssh-clients -y
Arch/Manjaro 系
sudo pacman -S openssh
openSUSE
sudo zypper install openssh-clients
验证安装
安装完成后,再次运行:
scp --version
正常输出示例如下:
scp: OpenSSH_9.0p1, OpenSSL 1.1.1o 3 May 2022
scp 基础用法示例
从本地复制文件到远程服务器
scp /path/to/local/file.txt username@remote-server:/path/to/destination/
username@remote-server
:远程主机的用户名和 IP/域名- 首次连接需确认主机指纹,输入
yes
继续。
从远程服务器复制文件到本地
scp username@remote-server:/path/to/remote/file.txt /local/destination/
复制整个目录(递归复制)
scp -r /local/directory username@remote-server:/remote/destination/
指定 SSH 端口(非默认 22 端口时)
scp -P 2222 /local/file.txt username@remote-server:/destination/
安全注意事项
- 密钥认证:
推荐使用 SSH 密钥替代密码登录,更安全且免密传输:ssh-keygen -t ed25519 # 生成密钥对 ssh-copy-id username@remote-server # 将公钥上传到服务器
- 防火墙配置:
确保远程服务器的 SSH 端口(默认 22)在防火墙中开放:sudo ufw allow 22/tcp # Ubuntu/Debian sudo firewall-cmd --add-service=ssh --permanent # CentOS/RHEL/Fedora
- 文件权限:
若传输失败,检查本地/远程目录的读写权限:chmod 700 ~/.ssh # 确保 .ssh 目录权限为 700 chmod 600 ~/.ssh/id_ed25519 # 私钥权限应为 600
常见问题解决
- 错误提示
Permission denied
:
检查用户名/密码、密钥权限或远程目录可写性。 - 连接超时:
确认远程 IP/端口正确,且网络可访问目标服务器。 - 主机密钥变更警告:
若提示REMOTE HOST IDENTIFICATION HAS CHANGED
,删除本地旧指纹:ssh-keygen -R remote-server-ip
替代方案
rsync
:更高效的文件同步工具(支持增量传输):rsync -avz /local/path/ username@remote-server:/remote/path/
sftp
:交互式安全文件传输(同属 OpenSSH 套件)。
引用说明基于 OpenSSH 官方文档及主流 Linux 发行版的手册(如
man scp
),遵循安全最佳实践,OpenSSH 是经过广泛验证的开源工具,建议通过官方仓库安装以确保代码完整性。
最后更新:2025年10月
适用系统:Ubuntu 20.04+, Debian 10+, CentOS 7+, RHEL 8+, Fedora 35+, Arch Linux, openSUSE Leap 15+。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6949.html