ssh配置sftp,实现上传下载文件
1. 配置 sftp
SSH 和 SFTP(SSH 文件传输协议)是紧密相关的。SFTP 是 SSH 协议的一部分,它提供了安全的文件传输功能。配置 SFTP 实际上就是配置 SSH 服务器以允许 SFTP 连接。以下是配置 SFTP 的详细步骤:
zhongding 只能通过 SFTP 访问 /data/zhongding 目录,且无法查看或访问其他路径:
1. 创建用户与目录结构
# 创建用户(主目录设为 /data/zhongding)
useradd -d /data/zhongding -m zhongding
passwd zhongding # 设置密码# 创建目录结构
mkdir -p /data/zhongding/zhongding #Chroot目录,必须由 root 拥有
chown root:root /data/zhongding
chmod 755 /data/zhongding #用户可写目录,权限由zhongding拥有
chown zhongding:zhongding /data/zhongding/zhongding
chmod -R 755 /data/zhongding/zhongding2. 配置 SSH 服务
# 备份原始配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak#3.ssh里面开启sftp
vim /etc/ssh/sshd_config
# 使用独立的外部进程处理 SFTP 请求(不推荐)
#Subsystem sftp /usr/libexec/openssh/sftp-server# 使用SSH服务内置的SFTP模块处理请求(推荐,可配合 Match 块强制用户仅使用 SFTP)
Subsystem sftp internal-sftp -f AUTH -l INFO#4. 添加 SFTP 限制配置
cat << EOF | sudo tee -a /etc/ssh/sshd_config
# 限制 zhongding 用户只能通过 SFTP 访问指定目录
Match User zhongding #条件匹配指令,用于限定后续配置项仅对特定用户生效,Match User 块内的配置需缩进ForceCommand internal-sftp #强制用户会话仅使用内置的SFTP服务,禁止执行其他SSH命令或Shell登录ChrootDirectory /data/zhongding #将用户的根目录锁定到指定路径(/data/zhongding),用户无法访问该目录外的文件系统AllowTcpForwarding no #禁止用户通过SSH隧道进行端口转发(如本地/远程端口映射)X11Forwarding no #禁用X11图形界面转发功能
EOF# 重启 SSH 服务
systemctl restart sshd
Subsystem 命令解释
#使用SSH服务内置的SFTP模块处理请求(推荐,可配合 Match 块强制用户仅使用 SFTP)
Subsystem sftp internal-sftp -f AUTH -l INFOinternal-sftp:调用 OpenSSH 内置 SFTP 服务器,无需外部程序。
-f AUTH:将日志写入系统认证日志(如/var/log/auth.log)。
-l INFO:设置日志级别为 “信息”,记录连接、传输等操作
2. 客户端连接sftp 方式
2.1. 命令行工具连接
2.1.1. Linux/macOS:使用内置的 sftp
命令
# 格式:sftp [用户名@]服务器地址[:端口]
sftp user@example.com # 默认使用 22 端口
sftp -P 2222 user@example.com # 指定非标准端口(如 2222)#xshell 建立一个sftp协议的连接,也可以连接# 连接上后相关操作命令
# 文件操作
put local_file.txt # 上传本地文件到服务器
put -r local_dir # 递归上传目录
get remote_file.txt # 下载服务器文件到本地
get -r remote_dir # 递归下载目录# 目录操作
ls # 查看服务器当前目录文件
lls # 查看本地当前目录文件
cd /path/to/server_dir # 切换服务器目录
lcd /path/to/local_dir # 切换本地目录# 其他
help # 查看帮助
exit # 退出连接
2.2. 图形化 SFTP 客户端(适合非技术用户)
FileZilla(跨平台,免费开源)
- 下载与安装:从 FileZilla 官网 下载对应系统的安装包。
- 连接步骤:
-
- 打开 FileZilla,点击 “文件”→“站点管理器”。
- 点击 “新建站点”,填写:
-
-
- 协议:选择 “SFTP”。
- 主机:输入服务器 IP 或域名。
- 端口:默认 22(如非标准端口需修改)。
- 登录类型:选择 “正常”,输入用户名和密码。
-
-
- 点击 “连接”,验证服务器指纹(首次连接时)。
- 操作方式:左侧为本地文件,右侧为服务器文件,直接拖拽即可上传 / 下载。