EC2创建SFTP账号

✅ 场景目标:
  • 用户名:userftp2(你可以替换成你要的)
  • SFTP 根目录:/userftp/home/userftp2
  • 支持登录方式:密码 + 公钥(Key)认证
  • 限制只能 SFTP(禁止 SSH shell)
  • 使用 chroot 限制用户只可以访问自己目录
✅ 步骤 1:创建用户和目录结构
# 创建主目录(chroot 要求父目录是 root 拥有)
sudo mkdir -p /userftp/home/userftp2/upload

# 创建用户并设定家目录(不要创建 shell)
sudo useradd -d /userftp/home/userftp2 -s /sbin/nologin userftp2

# 设置密码(这个步骤用于密码登录)
sudo passwd userftp2

# 修改权限(chroot 要求)
sudo chown root:root /userftp/home/userftp2
sudo chmod 755 /userftp/home/userftp2

# 上传目录归用户拥有
sudo chown userftp2:userftp2 /userftp/home/userftp2/upload

✅ 步骤 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

Loading

Facebook评论