如何使用Ubuntu SFTP进行文件传输
导读:Ubuntu SFTP文件传输实用指南 一 连接与登录 在本地 Ubuntu 终端使用命令连接远程 SFTP(基于 SSH,默认端口 22): 基本连接:sftp username@hostname 指定端口:sftp -o Port=...
Ubuntu SFTP文件传输实用指南
一 连接与登录
- 在本地 Ubuntu 终端使用命令连接远程 SFTP(基于 SSH,默认端口 22):
- 基本连接:
sftp username@hostname - 指定端口:
sftp -o Port=2222 username@hostname - 指定私钥:
sftp -o IdentityFile=~/.ssh/id_ed25519 username@hostname - 连接成功进入交互提示符:
sftp>
- 基本连接:
- 说明:SFTP 与 SSH 共用端口与认证方式,首次连接可能需要确认主机指纹并输入密码或使用密钥登录。
二 常用交互命令
- 会话与帮助
- 查看帮助:
help或? - 退出会话:
exit、quit、bye
- 查看帮助:
- 路径与目录
- 打印工作目录:
pwd(远程)、lpwd(本地) - 切换目录:
cd remote_dir、lcd local_dir - 列目录:
ls、lls - 建删目录:
mkdir remote_dir、rmdir remote_dir
- 打印工作目录:
- 文件传输
- 上传:
put local_file [remote_file] - 下载:
get remote_file [local_file] - 批量上传/下载:
mput *.txt、mget *.log
- 上传:
- 权限与删除
- 修改权限:
chmod 644 file - 删除文件:
rm file
- 修改权限:
- 本地命令与临时 Shell
- 执行本地命令:
!command(如!ls、!df -h) - 进入本地 Shell:
!,返回 SFTP:exit
- 执行本地命令:
- 提示:批量传输通配符在交互式 SFTP 中可用;若需递归传输目录,见下一节。
三 目录递归传输与实用技巧
- 递归传输目录
- 上传目录:
put -r local_folder - 下载目录:
get -r remote_folder
- 上传目录:
- 指定远端起始目录
- 登录即进入目标目录:
sftp -o Port=2222 username@hostname:/remote/start/dir
- 登录即进入目标目录:
- 常见排错
- 权限不足:确保远端目标目录对登录用户可写(如
chmod 755或调整属主)。 - 端口或密钥错误:核对
-o Port=与-o IdentityFile=参数及私钥权限(建议 600)。 - 连接被拒或超时:确认远端 SSH/SFTP 已启用、端口开放及防火墙策略。
- 权限不足:确保远端目标目录对登录用户可写(如
四 图形化客户端与替代工具
- 图形化工具(适合不熟悉命令行的场景)
- FileZilla、WinSCP:支持 SFTP 协议,拖拽上传下载,跨平台易用。
- 命令行替代
- scp(简单复制场景):上传
scp file user@host:/path;下载scp user@host:/path/file .;递归复制目录加-r;指定端口用大写-P;指定私钥用-i。示例:scp -P 2222 -i ~/.ssh/id_rsa file user@host:/opt/
- scp(简单复制场景):上传
- 说明:SFTP 与 SCP 均基于 SSH,在安全性与身份认证方式上一致。
五 作为 SFTP 服务端的快速配置(可选)
- 安装并启用服务
sudo apt update & & sudo apt install openssh-server -ysudo systemctl start ssh & & sudo systemctl enable ssh
- 基本 SFTP 配置(编辑 /etc/ssh/sshd_config)
- 确保启用 SFTP 子系统:
Subsystem sftp internal-sftp - 限制某用户组仅 SFTP 且禁 Shell(示例组 sftpusers)
Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no - 创建 SFTP 用户与目录(示例用户 sftpuser)
sudo groupadd sftpusers sudo useradd -m -G sftpusers -s /usr/sbin/nologin sftpuser sudo passwd sftpuser sudo chown root:root /home/sftpuser sudo chmod 755 /home/sftpuser sudo mkdir -p /home/sftpuser/uploads sudo chown sftpuser:sftpusers /home/sftpuser/uploads - 使配置生效:
sudo systemctl restart ssh
- 确保启用 SFTP 子系统:
- 安全建议
- 仅开放必要端口,优先使用 SSH 密钥 认证,必要时限制来源 IP,避免将 SSH 端口 22 对公网完全放开。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何使用Ubuntu SFTP进行文件传输
本文地址: https://pptw.com/jishu/769231.html
