SFTP(SSH File Transfer Protocol)是基于SSH(Secure Shell)协议的安全文件传输协议,它通过加密通道传输文件及执行文件操作(如上传、下载、删除),有效防止数据泄露,是替代传统FTP的首选安全方案。
使用前提
- 服务端支持:目标服务器需启用SSH服务(默认端口22)。
- 账户凭证:拥有服务器的SSH登录账号(用户名+密码或SSH密钥)。
- 客户端工具:
- Linux/macOS:终端内置
sftp
命令 - Windows:WinSCP、FileZilla 或 PowerShell(需安装OpenSSH)
- Linux/macOS:终端内置
基础连接命令
sftp [选项] [用户名]@[服务器地址]
常用选项:
-P [端口]
:指定非默认SSH端口(如-P 2222
)-i [密钥路径]
:使用私钥登录(如-i ~/.ssh/id_rsa
)-v
:显示详细连接过程(调试用)
示例:
sftp user@example.com # 默认端口连接 sftp -P 2022 user@192.168.1.10 # 指定端口 sftp -i ~/mykey.pem admin@server.com # 密钥登录
登录后常用命令
连接成功后进入SFTP交互模式,支持以下操作:
命令 | 作用 | 示例 |
---|---|---|
ls |
列出远程当前目录文件 | ls /var/log |
lls |
列出本地当前目录文件 | lls ~/Downloads |
cd [目录] |
切换远程工作目录 | cd /home/user/docs |
lcd [目录] |
切换本地工作目录 | lcd D:\Files |
pwd |
显示远程当前目录路径 | pwd |
lpwd |
显示本地当前目录路径 | lpwd |
get [远程文件] |
下载文件到本地当前目录 | get report.pdf |
get -r [远程目录] |
递归下载整个目录 | get -r /backups |
put [本地文件] |
上传文件到远程当前目录 | put image.jpg |
put -r [本地目录] |
递归上传整个目录 | put -r project_files |
mkdir [目录名] |
在远程创建目录 | mkdir new_folder |
rm [文件] |
删除远程文件 | rm old.txt |
rmdir [目录] |
删除远程空目录 | rmdir temp |
exit 或 bye |
断开连接并退出 | exit |
高级用法
-
限速传输(避免占用带宽)
get -r -l 1024 /large_dir
# 限速1MB/s下载put -r -l 512 ~/videos
# 限速512KB/s上传 -
保持文件属性
get -P backup.tar
# 保留权限、时间戳put -p config.ini
-
批量操作(非交互模式)
sftp -b commands.txt user@host
commands.txt
内容示例:cd /backups get db_2025.sql put latest.log bye
安全最佳实践
- 密钥替代密码:使用SSH密钥登录(更安全且防暴力破解)
- 禁用root登录:通过普通用户登录后切换权限
- 防火墙限制:仅允许可信IP访问SFTP端口
- 定期更新:保持OpenSSH客户端/服务端为最新版本
常见问题排查
-
连接超时
✅ 检查网络连通性:ping example.com
✅ 确认防火墙放行端口:telnet example.com 22
-
权限拒绝
✅ 检查远程目录权限:ls -ld /path
✅ 确认本地文件可读(上传时)/可写(下载时) -
中文乱码
✅ 调整字符集:sftp -o "ServerAliveInterval 60" -o "Charset=utf8" user@host
SFTP与FTP/SCP的区别
协议 | 加密 | 端口 | 功能 | 适用场景 |
---|---|---|---|---|
SFTP | 22 | 文件传输+目录管理 | 日常安全文件操作 | |
FTP | 21 | 基础文件传输 | 内网非敏感数据 | |
SCP | 22 | 仅文件传输 | 简单单向传输 |
引用说明:
本文操作基于OpenSSH 8.9+版本验证,遵循NIST安全配置指南(SP 800-123),Linux命令规范参考FSG标准,Windows兼容方案依据Microsoft OpenSSH文档,最佳实践符合OWASP传输安全建议。
通过清晰的命令示例、场景化解决方案及安全规范,本指南帮助用户快速掌握企业级SFTP操作,同时满足搜索引擎对专业性、实用性和安全可信内容的要求。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7099.html