freebsd:openssh_sftp_chroot_only
目录
配置基于 OpenSSH 的仅用 SFTP chroot 环境 (FreeBSD)
不想用 FTP 的这个老协议, 而且对于端口映射/防火墙非常的不友好, 加密协议也是修修补补进去的. 而且还需要安装第三方服务端.
以下将使用系统自带的 openssh, 创建一个基于密码验证的 SFTP, 用户仅限SFTP而不能SSH登录, 而且限制在该用户的 homedir.
创建用户组
创建用户组 sftponly
pw groupadd sftponly
创建用户
创建用户 sftp_usera, 该用户使用组 sftponly, homedir 为 /home/sftponly/usera
pw useradd sftp_usera -d /home/sftponly/usera -s /usr/sbin/nologin -g sftponly
设置用户密码
passwd sftp_usera
设置 homedir 的权限
homedir 必须为 root
chown root:wheel /home/sftponly/usera chmod 755 /home/sftponly/usera
设置 /etc/ssh/sshd_config
配置 sftponly 的用户组成员, chroot 在 homedir, 并且仅用各种转发, 并且启用密码. 因为我的 sshd 全局是禁用了密码仅限证书验证.
在 /etc/ssh/sshd_config 末尾添加如下内容
Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no PasswordAuthentication yes
重新加载 sshd
service sshd reload
缺点
从homedir的权限得知, 该用户无法往这个目录写入/删除/更改, 那么解决方法是, chroot设置在 homedir 往上一级.
freebsd/openssh_sftp_chroot_only.txt · 最后更改: 2022/05/09 05:15 由 Hshh