如何在Linux上设置远程文件传输(如SCP和SFTP)

来源:Golang编程网作者:澳门程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《如何在Linux上设置远程文件传输(如SCP和SFTP)》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上设置远程文件传输(如SCP和SFTP)》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中,远程文件传输是服务器运维、跨设备协作时的核心操作,SCP和SFTP作为基于SSH协议的安全传输方式,被广泛应用在各种场景中。两者都依赖SSH服务运行,因此首先需要确保Linux系统已经安装并启动了SSH服务。

如何在Linux上设置远程文件传输(如SCP和SFTP)

一、前置准备:配置SSH服务

SCP和SFTP都依赖SSH服务实现通信,因此需要先完成SSH服务的基础配置。大多数Linux发行版默认已经安装了OpenSSH相关组件,若未安装可以通过包管理器安装。

1. 安装OpenSSH服务

对于Debian/Ubuntu系统,执行以下命令安装:

# 更新软件包索引
sudo apt update
# 安装服务端和客户端组件
sudo apt install openssh-server openssh-client -y

对于CentOS/RHEL系统,执行以下命令安装:

# 安装OpenSSH服务组件
sudo yum install openssh-server openssh-clients -y

2. 启动并设置SSH服务开机自启

安装完成后启动SSH服务,并配置开机自动启动:

# 启动SSH服务
sudo systemctl start sshd
# 设置开机自启
sudo systemctl enable sshd
# 检查服务运行状态
sudo systemctl status sshd

如果服务状态显示active (running),说明SSH服务已经正常运行,此时SCP和SFTP的基础运行环境已经就绪。

二、SCP的使用与配置

SCP(Secure Copy)是基于SSH的加密文件复制工具,使用方式和传统的cp命令类似,适合快速传输单个或少量文件,不需要建立交互式连接。

1. SCP基础语法

SCP的通用语法格式如下:

# 从本地复制到远程
scp [可选参数] 本地文件路径 远程用户@远程主机IP:远程目录路径
# 从远程复制到本地
scp [可选参数] 远程用户@远程主机IP:远程文件路径 本地目录路径
# 远程两台主机之间传输文件
scp [可选参数] 远程用户1@远程主机1IP:文件路径 远程用户2@远程主机2IP:目标路径

2. 常用参数说明

  • -r:递归复制整个目录
  • -P:指定SSH服务的端口号,默认是22,若修改了SSH端口需要加该参数
  • -v:显示详细的传输调试信息,方便排查问题
  • -C:传输过程中启用压缩,适合大文件传输

3. 使用示例

示例1:将本地/home/user/test.txt文件复制到远程主机192.168.0.1的/tmp目录下,远程用户为root:

scp /home/user/test.txt root@192.168.0.1:/tmp/

示例2:将远程主机192.168.0.1的/var/log/syslog文件复制到本地当前目录:

scp root@192.168.0.1:/var/log/syslog ./

示例3:递归复制本地/home/user/project目录到远程主机的/opt目录下,SSH端口为2222:

scp -r -P 2222 /home/user/project root@192.168.0.1:/opt/

三、SFTP的使用与配置

SFTP(SSH File Transfer Protocol)是交互式的文件传输协议,支持查看远程目录、创建删除文件、修改权限等操作,适合需要批量管理远程文件的场景。

1. 连接SFTP服务器

使用以下命令连接远程SFTP服务器,默认端口为22,若修改了SSH端口需要加-P参数:

# 默认端口连接
sftp 远程用户@远程主机IP
# 指定端口连接
sftp -P 2222 远程用户@远程主机IP

连接成功后会进入SFTP交互式命令行,提示符为sftp>

2. 常用SFTP命令

命令作用说明
ls查看远程当前目录下的文件列表
lls查看本地当前目录下的文件列表
cd 目录路径切换远程工作目录
lcd 目录路径切换本地工作目录
get 远程文件路径下载远程文件到本地当前目录
get -r 远程目录路径递归下载远程目录到本地
put 本地文件路径上传本地文件到远程当前目录
put -r 本地目录路径递归上传本地目录到远程
mkdir 目录名在远程创建新目录
rm 文件名删除远程文件
rmdir 目录名删除远程空目录
exitquit退出SFTP连接

3. 使用示例

示例:连接远程服务器后,查看远程/tmp目录,将本地的data.zip上传到远程/tmp目录,再下载远程的report.pdf到本地:

sftp root@192.168.0.1
# 切换远程目录到/tmp
sftp> cd /tmp
# 查看远程目录内容
sftp> ls
# 上传本地data.zip
sftp> put data.zip
# 下载远程report.pdf
sftp> get report.pdf
# 退出连接
sftp> exit

四、常见问题排查

如果SCP或SFTP连接失败,可以按照以下步骤排查:

  • 检查远程主机SSH服务是否正常运行,使用systemctl status sshd查看状态
  • 检查远程主机防火墙是否放行了SSH端口,默认22端口,若修改了端口需要放行对应端口
  • 检查远程用户是否有对应目录的读写权限,避免权限不足导致传输失败
  • 若提示连接超时,检查本地和远程主机之间的网络是否连通,可以使用ping 远程主机IP测试连通性
  • 若提示认证失败,检查用户名和密码是否正确,或者SSH密钥配置是否正确

五、安全加固建议

为了避免远程文件传输带来安全风险,建议做以下加固:

  • 修改SSH默认端口,避免使用22端口被批量扫描
  • 禁用SSH密码登录,使用密钥对认证,提升认证安全性
  • 限制SSH允许登录的用户,在/etc/ssh/sshd_config中配置AllowUsers 用户名指定允许登录的用户
  • 定期更新OpenSSH组件,修复已知安全漏洞

SCPSFTPLinux远程文件传输修改时间:2026-07-10 09:03:16

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。