Linux命令-sftp(SSH 文件传输协议客户端)
Linux命令-sftpSSH 文件传输协议客户端 简介 语法⚙️ 选项 交互命令远程操作命令本地操作命令文件传输命令控制命令 示例示例 1交互式基本操作示例 2非交互模式——在 Shell 中执行单条 SFTP 命令示例 3批量文件传输——使用批处理文件示例 4SSH 密钥认证与安全加密示例 5SFTP 运维实战——Web 站点部署示例 6SFTP 断点续传与传输限制⚠️ 注意 相关命令 总结快速参考sftp是基于 SSH 的安全文件传输客户端提供交互式命令行界面支持上传、下载、目录浏览、权限管理等完整文件操作。所有数据通过 SSH 加密通道传输是 FTP 的安全替代方案。sftp与 FTPS (FTP over SSL/TLS) 是不同的协议。sftp 运行在 SSH 子系统中默认端口 22只需 SSH 服务即可无需额外守护进程。 简介SFTPSSH File Transfer Protocol是 SSH 协议族的一部分由 IETF 在draft-ietf-secsh-filexfer系列草案中定义。与 SCP 不同SFTP 是一个有状态的交互式协议支持断点续传、目录列表、权限修改等高级操作功能远超 SCP。安装状态sftp随 OpenSSH 客户端一同安装几乎所有 Linux 发行版默认包含。# 检查 sftp 是否可用$whichsftp/usr/bin/sftp# 如不存在极少见安装方式# Debian/Ubuntu$sudoapt-getinstallopenssh-client# RHEL/CentOS/Fedora$sudoyuminstallopenssh-clients 语法sftp[选项][用户]主机[:路径]sftp[选项][用户]主机[:源文件][目标路径]sftp-b批处理文件[用户]主机第一种形式进入交互模式第二种形式用于单次文件下载类似 scp第三种形式用于非交互的批量操作。⚙️ 选项选项说明-P 端口指定 SSH 连接端口注意大写 P与 ssh 命令不同-i 私钥文件指定用于认证的 SSH 私钥-b 批处理文件从文件读取 SFTP 命令非交互式执行-o ssh_option传递额外 SSH 选项如-o StrictHostKeyCheckingno-C启用 SSH 压缩传输-c 加密算法指定加密算法如aes256-gcmopenssh.com-l 限制值限制传输带宽单位 KB/s-r递归复制整个目录交互模式下已废弃使用get -r-v详细输出模式便于调试连接问题-q静默模式不显示进度信息 交互命令进入 SFTP 后的交互命令体系是 SFTP 最强大的部分远程操作命令命令说明ls [目录]列出远程目录内容cd 目录切换远程工作目录pwd显示远程当前目录mkdir 目录创建远程目录rmdir 目录删除远程空目录rm 文件删除远程文件rename 旧名 新名重命名远程文件chmod 模式 文件修改远程文件权限chown 属主 文件修改远程文件所有者需权限chgrp 组 文件修改远程文件所属组df [-h]显示远程文件系统磁盘使用情况stat 文件显示远程文件详细信息类似于 ls -l 但更丰富ln [-s] 源 目标创建远程硬链接或符号链接symlink 源 目标创建远程符号链接本地操作命令命令说明lls [目录]列出本地目录内容lcd 目录切换本地工作目录lpwd显示本地当前目录lmkdir 目录创建本地目录!命令在本地 Shell 中执行命令例如!ls -la文件传输命令命令说明get [-r] 远程文件 [本地路径]下载远程文件-r递归下载目录put [-r] 本地文件 [远程路径]上传本地文件-r递归上传目录mget 通配符批量下载支持*?通配符mput 通配符批量上传reget 远程文件断点续传下载reput 本地文件断点续传上传progress切换传输进度显示控制命令命令说明bye/exit/quit退出 SFTP 会话help [命令]显示帮助信息version显示 SFTP 协议版本 示例示例 1交互式基本操作$sftpalice192.168.1.100 Connected to192.168.1.100. sftppwdRemote working directory: /home/alice sftplpwd Local working directory: /home/bob/projects sftpls-ladrwxr-xr-x6alice alice4096Jun1410:00.drwxr-xr-x4root root4096Jun1008:00..-rw-r--r--1alice alice220Jun1409:30 .bash_logout -rw-r--r--1alice alice3771Jun1409:30 .bashrc drwxr-xr-x2alice alice4096Jun1410:00 documents sftpcddocuments sftpput report.txt Uploading report.txt to /home/alice/documents/report.txt report.txt100%20482.0KB/s 00:00 sftpget logfile.txt Fetching /home/alice/documents/logfile.txt to logfile.txt logfile.txt100%40964.0KB/s 00:00 sftplls logfile.txt report.txt notes.md sftprmold_backup.tar.gz Removing /home/alice/documents/old_backup.tar.gz sftpbye# 预期输出# 成功连接 → 浏览目录 → 上传 report.txt → 下载 logfile.txt → 删除旧备份 → 退出示例 2非交互模式——在 Shell 中执行单条 SFTP 命令# 直接下载单个文件类似 scp 用法$sftpbobfileserver:/var/log/nginx/access.log ./my_access.log Fetching /var/log/nginx/access.log to ./my_access.log /var/log/nginx/access.log100% 125MB12.5MB/s 00:10# 上传文件$sftpbobfileserver:./deploy.tar.gz /tmp/ 注意此用法上传时第一个参数是本地文件第二个是远程目标# 使用 Here Document 执行多条命令$sftpdeploysftp.example.comEOF cd /var/www/html put index.html put style.css put app.js ls -la bye EOF# 预期输出# sftp cd /var/www/html# sftp put index.html进度条# sftp put style.css进度条# sftp put app.js进度条# sftp ls -la# drwxr-xr-x ... index.html# -rw-r--r-- ... style.css# -rw-r--r-- ... app.js# sftp bye示例 3批量文件传输——使用批处理文件# Step 1: 创建批处理命令文件$catbatch_download.sftpCMDS cd /backup/database lcd /local/restore get db_dump_20260614.sql.gz get innodb_backup.tar.gz cd /backup/logs lcd /local/restore/logs mget *.log rm *.log.old bye CMDS# Step 2: 执行批处理传输$sftp-bbatch_download.sftp admindbserver sftpcd/backup/database sftplcd /local/restore sftpget db_dump_20260614.sql.gz Fetching /backup/database/db_dump_20260614.sql.gz to /local/restore/db_dump_20260614.sql.gz sftpget innodb_backup.tar.gz Fetching /backup/database/innodb_backup.tar.gz to /local/restore/innodb_backup.tar.gz sftpcd/backup/logs sftplcd /local/restore/logs sftpmget *.log Fetching /backup/logs/error.log to /local/restore/logs/error.log Fetching /backup/logs/access.log to /local/restore/logs/access.log sftprm*.log.old Removing /backup/logs/error.log.old Removing /backup/logs/access.log.old# 批处理文件的通用格式# - 每行一条 SFTP 交互命令# - 支持所有 sftp 交互命令ls/cd/get/put/rm 等# - 最后以 bye/exit/quit 结束# 在 cron 定时任务中使用批处理$crontab-e# 每天凌晨 3 点自动下载数据库备份03* * *sftp-b/scripts/batch_download.sftp-oStrictHostKeyCheckingno admindbserver/var/log/sftp_cron.log21示例 4SSH 密钥认证与安全加密# Step 1: 生成专用 SFTP 密钥对$ ssh-keygen-ted25519-f~/.ssh/sftp_key-CsftpmyhostGenerating public/private ed25519 key pair. Your identification has been savedin/home/user/.ssh/sftp_key Your public key has been savedin/home/user/.ssh/sftp_key.pub# Step 2: 将公钥部署到远程服务器$ ssh-copy-id-i~/.ssh/sftp_key.pub usersftp-server# 或者手动部署无 ssh-copy-id 时$cat~/.ssh/sftp_key.pub|sshusersftp-servermkdir -p ~/.ssh cat ~/.ssh/authorized_keys# Step 3: 指定私钥连接$sftp-i~/.ssh/sftp_key usersftp-server Connected to sftp-server. sftpls无需输入密码直接进入交互模式# Step 4: SSH 配置文件简化$cat~/.ssh/configCONFIG Host sftp-prod HostName sftp.corp.example.com Port 2222 User deploy IdentityFile ~/.ssh/sftp_key StrictHostKeyChecking yes CONFIG# 现在可以用别名连接$sftpsftp-prod Connected to sftp.corp.example.com. sftp# 预期效果一键连接无需记忆 IP/端口/用户名/密钥路径示例 5SFTP 运维实战——Web 站点部署#!/bin/bash# Web 站点通过 SFTP 部署脚本SFTP_HOSTweb-prodREMOTE_ROOT/var/www/html/mysite# 本地构建目录BUILD_DIR./distecho 开始部署到$SFTP_HOST# 清理远程旧文件echo清理远程旧文件...sftp-b-$SFTP_HOSTSFTPEOF cd /var/www/html/mysite rm -rf css js images rm index.html SFTPEOF# 上传新构建文件echo上传构建产物...cd$BUILD_DIR# 递归上传目录sftp-b-$SFTP_HOSTSFTPEOF cd$REMOTE_ROOTput -r css put -r js put -r images put index.html put favicon.ico chmod 644 *.html *.ico chmod 755 css js images bye SFTPEOFecho 部署完成 # 验证部署sftp$SFTP_HOSTSFTPEOF cd /var/www/html/mysite ls -la df -h bye SFTPEOF# 预期输出# 开始部署到 web-prod # 清理远程旧文件...# 上传构建产物...# 部署完成 # sftp ls -la# drwxr-xr-x ... css# drwxr-xr-x ... js# drwxr-xr-x ... images# -rw-r--r-- ... index.html# sftp df -h# Size Used Avail (root) /dev/vda1 50.0G 12.5G 37.5G /示例 6SFTP 断点续传与传输限制# 断点续传下载reget resume getsftpuserhost sftpreget large_video.mp4 Resuming /remote/path/large_video.mp4 to large_video.mp4 large_video.mp450% 500MB10.2MB/s 00:25 ETA# 如果中途断开重新连接后sftpuserhost sftpreget large_video.mp4 Resuming large_video.mp4 at byte524288000large_video.mp4100% 1000MB10.0MB/s 01:38# 限制传输带宽-l 参数单位 KB/s$sftp-l1024userhost# 限制为 1MB/s1024 KB/ssftpget huge_database.dump huge_database.dump30% 300MB 1024KB/s 05:00 ETA# 带宽被限制在 1MB/s避免占满网络# 启用压缩传输-C 参数对文本文件效果明显$sftp-Cuserhost sftpput large_log.txt# 压缩传输可显著减少文本数据的传输量⚠️ 注意SFTP vs SCP 的选择建议虽然两者都基于 SSH但适用场景不同特性SFTPSCP协议类型有状态交互式无状态一次性传输断点续传✅ 支持reget❌ 不支持目录列表✅ls/dir❌ 不支持远程文件管理✅ 完整的rm/mkdir/chmod❌ 不支持传输速度略慢协议开销稍大略快开销小适用场景交互操作、批量管理简单一次性传输常见连接问题排查连接超时检查 SSH 端口是否正确-P而非-p防火墙是否放行权限拒绝确认密钥权限为 600chmod 600 ~/.ssh/id_*找不到 sftp 子系统检查远程/etc/ssh/sshd_config中Subsystem sftp是否配置 相关命令命令说明scp基于 SSH 的简单文件复制工具rsync高级文件同步工具支持增量传输和丰富选项sshSSH 客户端sftp 运行在其协议之上sshfs通过 SSH 挂载远程文件系统到本地lftp多协议文件传输客户端支持 sftp/ftp/http 等curl支持 SFTP 协议sftp://URL用于脚本集成 总结sftp是 Linux 系统管理员和开发者的日常必备工具它完美结合了 SSH 的安全性和 FTP 的交互便利性。核心优势安全性全数据通过 SSH 加密传输无明文风险免部署只需 SSH 服务即可无需额外安装 FTP 守护进程交互性支持完整的远程文件管理操作浏览、增删改、权限管理可脚本化批处理模式和 Here Document 支持自动化运维断点续传大文件传输中断后可恢复节省时间和带宽日常文件传输首选 SFTP仅在需要增量同步/镜像备份时使用rsync仅在极简一次性传输时使用scp。

相关新闻

如何用VJ-FILTER-BOT打造高效文件管理系统?实用案例分享

如何用VJ-FILTER-BOT打造高效文件管理系统?实用案例分享

如何用VJ-FILTER-BOT打造高效文件管理系统?实用案例分享 【免费下载链接】VJ-FILTER-BOT A Advance Auto Filter Bot With Clone And Amazing Features. 项目地址: https://gitcode.com/gh_mirrors/vj/VJ-FILTER-BOT VJ-FILTER-BOT是一款功能强大的自动化文件…

2026/7/28 3:37:59 阅读更多 →
行空板图形化Python编程:从积木到代码的平滑进阶指南

行空板图形化Python编程:从积木到代码的平滑进阶指南

1. 项目缘起:为什么选择行空板作为图形化Python的起点?如果你对编程感兴趣,尤其是Python,但一打开代码编辑器,面对满屏的英文和括号就感到头大,那么“行空板”这个名字,你很可能已经听过不止一次…

2026/7/28 3:37:59 阅读更多 →
Python实战:从零构建命令行学生成绩管理系统

Python实战:从零构建命令行学生成绩管理系统

1. 项目缘起:为什么我要自己写一个成绩管理程序?作为一名在一线摸爬滚打多年的开发者,我处理过不少和数据管理相关的需求。最近,一位在中学任教的朋友向我吐槽,他们学校还在用Excel表格手动录入、计算学生的期中、期末…

2026/7/28 3:37:59 阅读更多 →

最新新闻

毕业论文全流程智能辅助工具:从选题到答辩的AI解决方案

毕业论文全流程智能辅助工具:从选题到答辩的AI解决方案

1. 项目概述:毕业论文全流程智能辅助工具去年指导学弟学妹论文时,发现90%的拖延都源于对流程的陌生感。宏智树AI正是为解决这个痛点而生——它把复杂的学术写作拆解成可执行的动作清单,就像有个经验丰富的导师24小时待命。不同于传统写作软件…

2026/7/28 3:50:03 阅读更多 →
智能体技术解析:从意图识别到大模型应用

智能体技术解析:从意图识别到大模型应用

1. 智能体技术概述:从概念到应用场景智能体(Agent)这个概念最早可以追溯到上世纪90年代的人工智能研究领域,但直到大模型技术爆发后才真正迎来它的高光时刻。简单来说,智能体就是能够感知环境、自主决策并执行动作的AI…

2026/7/28 3:50:03 阅读更多 →
基于MCP协议构建AI驱动的Kali Linux自动化渗透测试平台

基于MCP协议构建AI驱动的Kali Linux自动化渗透测试平台

1. 项目概述:当Kali Linux遇上AI Agent如果你和我一样,在安全领域摸爬滚打了几年,肯定对Kali Linux这个“瑞士军刀”又爱又恨。爱的是它集成了几乎所有你能想到的渗透测试工具,从信息搜集到漏洞利用,一站式搞定。恨的是…

2026/7/28 3:50:03 阅读更多 →
CrowdReply MCP:基于模型上下文协议的AI搜索排名优化技术解析

CrowdReply MCP:基于模型上下文协议的AI搜索排名优化技术解析

引言:AI搜索排名的痛点与解决方案在AI助手日益普及的今天,无论是Claude、ChatGPT还是其他智能对话工具,都面临着同一个核心问题:搜索结果的准确性和实用性。很多开发者在使用AI进行技术查询时,经常会遇到搜索结果不相关…

2026/7/28 3:50:03 阅读更多 →
Python词云图制作全攻略:从环境配置到高级可视化实战

Python词云图制作全攻略:从环境配置到高级可视化实战

1. 项目概述:从零到一的词云图创作之旅“词云图”这个词,听起来可能有点技术范儿,但说白了,它就是一堆文字里,把出现次数最多的词,用最大、最显眼的字体展示出来,其他词按频率大小依次排列&…

2026/7/28 3:50:03 阅读更多 →
人脑与AI记忆系统:神经科学与LLM的交叉研究

人脑与AI记忆系统:神经科学与LLM的交叉研究

1. 项目概述:人脑与Agent记忆系统的跨学科探索 这篇综述论文的标题本身就蕴含着巨大的信息量——它试图在认知神经科学和人工智能两个看似独立的领域之间架起桥梁。当我第一次看到"人脑Agent记忆系统"这个表述时,立刻意识到这可能是近年来最具…

2026/7/28 3:49:02 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻