Ubuntu 上使用 LFTP 进行 SFTP 的简明指南
一 安装与快速连接
- 安装 LFTP
- Ubuntu/Debian:sudo apt update && sudo apt install lftp
- 交互式连接
- lftp sftp://用户名@主机或IP
- 指定端口:lftp -p 端口 sftp://用户名@主机
- 一行命令执行后退出
- lftp -u 用户名,密码 -p 端口 sftp://主机 -e “ls; exit”
- 常用子命令
- ls、cd、pwd、lcd、get、put、mget、mput、mirror、exit
以上命令覆盖安装、连接、执行与退出等基础操作,适合快速上手与脚本化调用。
二 常用传输与同步操作
- 单文件下载/上传
- 下载:get 远程文件 [-o 本地文件名]
- 上传:put 本地文件 [-o 远程文件名]
- 批量下载/上传
- 目录同步
- 远程 → 本地:mirror 远程目录 本地目录
- 本地 → 远程:mirror -R 本地目录 远程目录
- 断点续传与并发
- 断点续传:get/put -c 文件名
- 并发传输:mirror –parallel=5 目录(可按需调整并发数)
- 后台任务
- 后台下载:lftp -e “get 远程文件 &”
以上覆盖了日常最常用的大文件、批量与目录同步场景,并兼顾可靠性与效率。
三 免密登录与自动化
- 使用 .netrc 自动登录
- 在 ~/.netrc 中添加:
- 之后可直接:lftp sftp://主机
- 注意:文件权限建议设为 600,避免泄露凭据
- 使用 SSH 密钥(推荐)
- 默认私钥:~/.ssh/id_rsa 或 id_ed25519
- 指定私钥登录:
- lftp -u 用户名, -p 端口 sftp://主机 -e ‘set sftp:connect-program “ssh -i /path/私钥”; open; ls; exit’
- 使用 SSH 配置简化
- 在 ~/.ssh/config 中添加:
- Host mysftp
- HostName 主机或IP
- User 用户名
- Port 端口
- IdentityFile /path/私钥
- 连接:lftp sftp://mysftp
- 脚本化一行命令
- lftp -c “open sftp://mysftp; mirror -R 本地目录 远程目录; exit”
以上方法兼顾安全性与易用性,适合定时任务与自动化流程。
四 性能调优与稳定性设置
- 限速
- set net:limit-rate 100000(单位:字节/秒)
- 重试与超时
- set net:timeout 20
- set net:max-retries 3
- set net:reconnect-interval-base 5
- 并发与续传
- mirror –parallel=5 目录
- get/put -c 文件
- 本地/远程路径切换
- lcd 本地路径;cd 远程路径
这些参数可显著提升弱网、断点续传与批量传输场景下的稳定性与效率。
五 常见问题排查
- 证书/主机密钥不被信任
- 交互模式临时忽略:set ssl:verify-certificate no(仅内网/测试环境建议)
- 连接失败或卡住
- 检查端口连通:nmap -p 22,端口 主机
- 开启调试:lftp -d;如需 SSH 侧细节可用 ssh -v
- 目录不存在或同步异常
- 先用 ls/cd 确认远程路径;必要时先 lcd 到本地目标目录再 mirror
- 权限与密钥问题
- 确保私钥权限 600;必要时在 ~/.ssh/config 明确 IdentityFile
以上步骤可快速定位连接、认证与路径层面的常见问题。