EC2创建SFTP账号
✅ 场景目标:
- 用户名:
userftp2
(你可以替换成你要的) - SFTP 根目录:
/userftp/home/
userftp2
- 支持登录方式:密码 + 公钥(Key)认证
- 限制只能 SFTP(禁止 SSH shell)
- 使用 chroot 限制用户只可以访问自己目录
✅ 步骤 1:创建用户和目录结构
# 创建主目录(chroot 要求父目录是 root 拥有)
sudo mkdir -p /userftp/home//upload
userftp2
# 创建用户并设定家目录(不要创建 shell)
sudo useradd -d /userftp/home/-s /sbin/nologin
userftp2
userftp2
# 设置密码(这个步骤用于密码登录)
sudo passwd
userftp2
# 修改权限(chroot 要求)
sudo chown root:root //home/
userftp
userftp2
sudo chmod 755 //home/
userftp
userftp2
# 上传目录归用户拥有
sudo chown:
userftp2
/
userftp2
/home/
userftp
/upload
userftp2
✅ 步骤 2:创建 .ssh/authorized_keys
(如果要支持 SSH key 登录)
1. 在本地电脑生成 private key & public key:
ssh-keygen -t rsa -b 4096 -C "userftp2 key"
# 会生成 ~/.ssh/id_rsa 和 id_rsa.pub
2. 在服务器创建 .ssh
目录并上传public key:
sudo mkdir -p /userftp/home/userftp2/.ssh
sudo nano /userftp/home/userftp2/.ssh/authorized_keys
把 id_rsa.pub
的内容贴进去,然后保存退出。
3. 设置权限:
sudo chown -R userftp2:userftp2 /userftp/home/userftp2/.ssh
sudo chmod 700 /userftp/home/userftp2/.ssh
sudo chmod 600 /userftp/home/userftp2/.ssh/authorized_keys
✅ 步骤 3:修改 sshd_config
启用 SFTP 限制
1. 打开并编辑 sshd 配置:
sudo nano /etc/ssh/sshd_config
2. 在文件最后加上(确保不要重复 Match 块):
Match User userftp2
ChrootDirectory /userftp/home/userftp2
ForceCommand internal-sftp
PasswordAuthentication yes
PubkeyAuthentication yes
AllowTcpForwarding no
X11Forwarding no
✅ 步骤 4:重启 SSH 服务
sudo systemctl restart sshd
检查有没有语法错误:
sudo sshd -t
✅ 步骤 5:测试连接
🔐 使用密码登录测试:
sftp userftp2@your_server_ip
🔑 使用私钥连接测试:
sftp -i /path/to/id_rsa_你的privateKey userftp2@your_server_ip
Facebook评论