SFTP chroot 配置错误

SFTP chroot 配置错误

有人能看出我在这个过程中做错了什么吗?我可以以新用户身份连接到服务器并处于 chrooted 目录中,但尽管设置了所有正确的 root 权限,我仍无法添加文件或目录。

sudo mkdir /var/host
sudo groupadd sftp
sudo useradd john -d / -M -N -G sftp -s /bin/false
sudo passwd john

sudo nano /etc/ssh/sshd_config

Match Group sftp
  ChrootDirectory /var/host
  ForceCommand internal-sftp

service ssh restart

以下是目录权限

drwxr-xr-x  2 root root     4096 Jan 24 14:27 host

* 更新 *

好的,我想我现在明白了。如果这看起来不错,请告诉我:

sudo mkdir /var/sftp
sudo mkdir /var/sftp/host
chown john:sftp /var/sftp/host
sudo groupadd sftp
sudo useradd john -d /var/sftp/host -M -N -G sftp -s /bin/false
sudo passwd john

sudo nano /etc/ssh/sshd_config

Match Group sftp
  ChrootDirectory /var/sftp/host
  ForceCommand internal-sftp
  X11Forwarding no
  AllowTcpForwarding no

sudo service ssh restart

我认为这个解决方案的唯一问题是只有 John 可以添加文件和目录,或者 SFTP 的任何成员都可以吗?

答案1

  • 我不会让用户将主目录设置为/

  • /var/host/正确归 root 所有,并且 755 是正常chroot工作所必需的。由于它归 root 所有,因此用户当然john无法对其进行写入。

  • 对于用户,john您必须创建/var/host/他有写权限的子目录。john将永远无法直接写入 chroot(/var/host/),因为这不安全,所以sftp不允许这样做。

答案2

以下是一步一步的指南,可帮助您:

  1. 用户 bob 对 /home/bob/uploads 的 SFTP 访问(根据需要进行修改)
  2. 将 bob 锁定在 SSH 之外
  3. 使用用户名/密码而不是密钥:

首先,编辑您的 /etc/ssh/sshd_config 文件:

sudo nano /etc/ssh/sshd

向下滚动并修改:

PasswordAuthentication yes

并在底部添加:

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

按 Ctrl-X 退出并保存。

现在添加用户:

sudo useradd bob
sudo passwd bob

现在添加组并禁用 ssh:

sudo groupadd sftpusers
sudo usermod  -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob

现在设置权限:

sudo chown root:root /home/bob/
sudo chmod 755 /home/bob/
sudo mkdir /home/bob/uploads
sudo chown bob /home/bob/uploads

sudo service sshd restart

所有这些都是在以 root 用户身份登录时进行的(Amazon Linux AMI 上的 ec2-user)

相关内容