案例一:SFTP 使用 2200 端口,将 SFTP 用户的家目录作为 SFTP 用户的 SFTP 目录,让 SFTP 用户通过 SFTP 登录时被限制在自己的家目录里
# vim /etc/ssh/sshd_config
将以下内容:
......
Subsystem sftp ......
......
修改为:
......
# Subsystem sftp ......
......
并添加以下内容:
......
Subsystem sftp internal-sftp
Match LocalPort 2200
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory %h
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
(补充:这里以将 /etc/ssh/sshd_config 作为 SFTP 的配置文件为例)
(注意:SFTP 目录以及所有 SFTP 目录的父目录的所属主必须是 root,权限最高只能是 755 或者 750,否则就算此目录的所属主是此 SFTP 用户,此用户在登录时也会报错)
案例二:将根 “/” 目录下以和 SFTP 用户名同名的目录作为此 SFTP 用户的 SFTP 目录,让此 SFTP 用户通过 SFTP 登录时被限制在根 “/” 目录下以和自己用户名同名的目录里,但是此设置只适用于组是 sftpuser 的用户,并且 SFTP 上传的文件默认权限是 770
# vim /etc/ssh/sshd_config
将以下内容:
......
Subsystem sftp ......
......
修改为:
......
# Subsystem sftp ......
......
并添加以下内容:
......
Subsystem sftp internal-sftp
Match Group sftpuser
ForceCommand internal-sftp -m 770
PasswordAuthentication yes
ChrootDirectory /%u
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
(
补充:
1) 这里以将 /etc/ssh/sshd_config 作为 SFTP 的配置文件为例
2) -m 770 参数也可以使用 -u 770 替代,但是 -u 参数有时候会不起作用
)
(注意:SFTP 目录以及所有 SFTP 目录的父目录的所属主必须是 root,权限最高只能是 755 或者 750,否则就算此目录的所属主是此 SFTP 用户,此用户在登录时也会报错)
案例三:SFTP 使用 2222 端口,将根 “/” 目录下以和 SFTP 用户名同名的目录作为此 SFTP 用户的 SFTP 目录,让此 SFTP 用户通过 SFTP 登录时被限制在根 “/” 目录下以和自己用户名同名的目录里,但是此设置只适用于组是 sftpuser 的用户,SFTP 用户存放的公钥的文件为 /etc/ssh/authorized_keys/<user>/.ssh/authorized_keys,SFTP 上传的文件默认权限是 770
# vim /etc/ssh/sshd_config
将以下内容:
......
Subsystem sftp ......
......
修改为:
......
# Subsystem sftp ......
......
并添加以下内容:
......
Subsystem sftp internal-sftp -l VERBOSE -f LOCAL3
Match LocalPort 2222
Match Group sftp
ChrootDirectory /%u
AuthorizedKeysFile /etc/ssh/authorized_keys/%u/.ssh/authorized_keys
ForceCommand internal-sftp -m 770
AllowTcpForwarding no
X11Forwarding no
(
补充:
1) 这里以将 /etc/ssh/sshd_config 作为 SFTP 的配置文件为例
2) -m 770 参数也可以使用 -u 770 替代,但是 -u 参数有时候会不起作用
)
(注意:SFTP 目录以及所有 SFTP 目录的父目录的所属主必须是 root,权限最高只能是 755 或者 750,否则就算此目录的所属主是此 SFTP 用户,此用户在登录时也会报错)
案例四:将根 “/” 目录下以和 SFTP 用户名同名的目录作为此 SFTP 用户的 SFTP 目录,让此 SFTP 用户通过 SFTP 登录时被限制在根 “/” 目录下以和自己用户名同名的目录里,但是此设置只适用于用户 sftpuser
# vim /etc/ssh/sshd_config
将以下内容:
......
Subsystem sftp ......
......
修改为:
......
# Subsystem sftp ......
......
并添加以下内容:
......
Subsystem sftp internal-sftp
Match User sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /%u
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
(补充:这里以将 /etc/ssh/sshd_config 作为 SFTP 的配置文件为例)
(注意:SFTP 目录以及所有 SFTP 目录的父目录的所属主必须是 root,权限最高只能是 755 或者 750,否则就算此目录的所属主是此 SFTP 用户,此用户在登录时也会报错)
案例五:给不同的 SFTP 分配不同的 SFTP 目录,让 SFTP 用户通过 SFTP 登录时被限制在自己的家目录里
# vim /etc/ssh/sshd_config
将以下内容:
......
Subsystem sftp ......
......
修改为:
......
# Subsystem sftp ......
......
并添加以下内容:
......
Subsystem sftp internal-sftp
Match User eternalcenter
ChrootDirectory /eternalcenter
Match User mingyuzhu
ChrootDirectory /mingyuzhu
Match User zhumingyu
ChrootDirectory /zhumingyu
(
补充:这里以将
1) /etc/ssh/sshd_config 作为 SFTP 的配置文件为例
2) 将 /eternalcenter 作为 eternalcenter 的 SFTP 目录
3) 将 /mingyuzhu 作为 mingyuzhu 的 SFTP 目录
4) 将 /mingyuzhu 作为 mingyuzhu 的 SFTP 目录
为例
)
(注意:SFTP 目录以及所有 SFTP 目录的父目录的所属主必须是 root,权限最高只能是 755 或者 750,否则就算此目录的所属主是此 SFTP 用户,此用户在登录时也会报错)