SFTP 配置
- /etc/ssh/sshd_config 添加如下配置
#Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp # Match Group sftp Match User sftp ChrootDirectory /data/sftp/ AllowTcpForwarding no X11Forwarding no ForceCommand internal-sftp
- 重启 ssh 服务
# systemctl restart sshd
- 创建登录 sftp 的用户和组名为: sftp
# seradd -s /sbin/nologin sftp
- 如果需要其他用户通过 sftp 连接,通过以下命令将用户加入 sftp 组
# usermod -a -G sftp user
- 创建用于 ChrootDirectory 配置的用户根目录 /data/sftp 权限必须是 755 属主属组是 root
# mkdir /data/sftp
- /data/sftp 目录下创建一个 share 目录,设置属组为 sftp 用于 sftp 组中用户上传下载
# mkdir /data/sftp/share && chown :sftp share
使用 Python 上传文件到 SFTP
- 使用 pysftp 模块上传文件 start.txt 到 sftp 服务器
import pysftp
with pysftp.Connection(host='10.10.2.10', username='sftp', password='liubin0505star') as f:
f.put("/tmp/star.txt", "/share/star.txt")
2. 在 sftp 服务器的 /data/sftp/share 目录下确认上传的 start.txt 文件
ls -l /data/sftp/share/
total 0
-rw-rw-r-- 1 sftp sftp 0 Jun 3 16:27 star.txt