温馨提示×

如何学习linux sftp

小樊
49
2026-07-05 15:26:02
栏目: 智能运维

学习 Linux SFTP(SSH File Transfer Protocol) 可以分为 基础使用 → 进阶配置 → 自动化与安全加固 三个阶段。下面给你一个系统、实用的学习路线,适合初学者到进阶。


一、先搞清楚:SFTP 是什么?

SFTP ≠ FTP

对比项 FTP SFTP
是否加密 ❌ 明文 ✅ 加密
默认端口 21 22(SSH)
依赖服务 FTP 服务 SSH 服务
安全性

SFTP 是 SSH 的一部分,只要能 SSH,就能 SFTP


二、快速入门(10 分钟上手)

1️⃣ 查看是否安装 SSH(SFTP 依赖)

ssh -V
systemctl status sshd

如果没有:

# CentOS / Rocky / Alma
yum install -y openssh-server

# Ubuntu / Debian
apt install -y openssh-server

启动:

systemctl enable sshd
systemctl start sshd

2️⃣ 本地连接 SFTP(最常用)

sftp user@server_ip

示例:

sftp root@192.168.1.10

成功后会看到:

sftp>

3️⃣ 常用 SFTP 命令(必须掌握)

命令 作用
pwd 查看远程目录
lpwd 查看本地目录
ls 查看远程文件
lls 查看本地文件
cd 切换远程目录
lcd 切换本地目录
get file 下载
put file 上传
mkdir dir 创建远程目录
rm file 删除远程文件
exit / bye 退出

示例:

put test.txt
get test.txt

三、使用工具(非常推荐)

1️⃣ 图形化工具(新手友好)

  • FileZilla
  • WinSCP
  • MobaXterm

配置方式:

  • 协议:SFTP
  • 端口:22
  • 用户名 + 密码 / 密钥

2️⃣ 命令行工具

  • sftp
  • scp(简单文件拷贝)
scp file.txt user@ip:/tmp/

四、进阶配置(重点)

1️⃣ SFTP 使用密钥登录(强烈推荐)

ssh-keygen
ssh-copy-id user@ip

SFTP 登录不再需要密码 ✅


2️⃣ 限制用户只能 SFTP,不能 SSH(企业常用)

编辑:

vim /etc/ssh/sshd_config

添加:

Match User sftpuser
    ChrootDirectory /data/sftp
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

目录权限必须正确:

chown root:root /data/sftp
chmod 755 /data/sftp
mkdir /data/sftp/upload
chown sftpuser:sftpuser /data/sftp/upload

重启:

systemctl restart sshd

✅ 用户只能 SFTP,不能登录系统


五、自动化 & 脚本

1️⃣ sftp 批量上传脚本

sftp user@ip <<EOF
cd /data
put file1.txt
put file2.txt
bye
EOF

2️⃣ 使用 lftp(更强大)

lftp sftp://user@ip

支持断点续传、镜像同步:

mirror -R local_dir remote_dir

六、常见问题排查

❌ 连接失败

ssh user@ip

先确认 SSH 是否通


❌ 权限拒绝

  • 目录权限
  • SELinux
setenforce 0   # 临时关闭测试

❌ 端口不是 22

sftp -P 2222 user@ip

七、推荐学习路径(按这个来)

第 1 天

  • 会用 sftp 命令
  • put / get

第 2 天

  • 会用 FileZilla
  • 配置 SSH 密钥

第 3 天

  • 配置 SFTP 专用用户
  • 限制目录(Chroot)

第 4 天

  • 写自动化脚本
  • 排查权限问题

八、推荐资料

  • man sftp
  • man sshd_config
  • 官方文档:https://www.openssh.com/

如果你愿意,我可以:

  • ✅ 给你 SFTP 学习实验环境
  • ✅ 帮你 写企业级 SFTP 配置方案
  • ✅ 对比 SFTP / SCP / Rsync / FTP

你现在的学习目标是 日常使用、运维、还是企业部署

0