设置仅使用 SFTP 的用户会中断 SSH 连接

设置仅使用 SFTP 的用户会中断 SSH 连接

我设置了一组机器(LAN),用于无密码 SSH 登录以并行运行代码。但是,SSH 或功能没有问题...

我正在尝试在网关计算机上设置一个仅使用 sftp(无 shell)的用户,以便将外部(集群外)文件传输到网关计算机。我按照此处的指南创建了一个新组和用户(http://blog.swiftbyte.com/linux/allowing-sftp-access-while-chrooting-the-user-and-denying-shell-access/),并/etc/ssh/sshd_config根据需要编辑了文件。但是,当我重新启动 ssh 服务器时,网关机器不再能通过 SSH 或 SFTP 访问。任何尝试都会收到“连接被拒绝”消息。如果我切换回原始 sshd_config 文件,我就可以再次连接。

是否存在导致Subsystem sftp internal-sftpSSH 功能消失的已知设置问题?或者对于我可能遗漏的内容有什么建议?

我的sshd_config文件添加如下:

Subsystem sftp internal-sftp
Match Group sftponly
   ChrootDirectory %h
   X11Forwarding no
   AllowTcpForwarding no
   ForceCommand internal-sftp

我的 sftp 用户的主目录指定在启动时自动挂载的外部驱动器上。他们的主目录具有 root 所有权和 755 权限。

答案1

事实证明,Match Group代码块必须插入到文件末尾sshd_config。许多指南都没有明确说明这一点,所以我忽略了这一点,并认为代码应该与 Subsystem 行放在一起。SSH 再次正常工作;但是,SFTP 仍然无法连接(给出“管道损坏”错误)。

SFTP 问题解决:外部驱动器已安装/mnt/DATA/并具有权限,以便每个人都可以对其进行读取/写入。我为 sftp 用户创建了一个具有权限和所有权的777子目录,我认为这已经足够了。不幸的是,要求整个目录结构都有 root/750,包括目录。因此 sftp 可以工作,但我现在不能让物理用户在基本 /mnt/DATA/ 目录中创建新文件夹。虽然不是 100% 我想要的,但至少这是朝着正确方向迈出的一步。/mnt/DATA/sftp/750rootsftp/mnt/DATA/

OP 在评论中发布的答案

答案2

抱歉,我无法评论您的消息,所以就这样吧。您正在设置一个可以通过 SFTP 连接的标准 SFTP 组。我注意到,将 SSH 用户放入 SFTP 用户组后,ubuntu 会自动更改 chroot 查找并拒绝进一步的 SSH 访问。然后只能进行纯 SFTP 访问,并被关押在 usermod -d 文件夹中。从该 SFTP 组中删除用户可再次允许 SSH 登录。

相关内容