牛X 好用的sshd_config:ChrootDirectory:特别注意【该目录必须是只能且仅能root用户有w权限!】

【ChrootDirectory】目的和用途:实现chroot

 特别注意:该目录,必须!!必须!!只有且仅有root用户有w权限,其他用户不能有w权限!

否则,会出现 “Write failed: Broken pipe” 错误。

【ChrootDirectory】用法1:全局禁用,Match条件启用

#ChrootDirectory none


# override default of no subsystems
#Subsystem    sftp    /usr/libexec/openssh/sftp-server
Subsystem    sftp    internal-sftp

# Example of overriding settings on a per-user basis
#Match User root,user2
#    X11Forwarding no
#    AllowTcpForwarding no
#    ChrootDirectory none


Match User user3 
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory /root/jin

Match Group chroot
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory /root/jin

 

【ChrootDirectory】用法2:全局起用,Match条件禁用(比如,root例外)

ChrootDirectory /root/jin

# override default of no subsystems
#Subsystem    sftp    /usr/libexec/openssh/sftp-server
Subsystem    sftp    internal-sftp

# Example of overriding settings on a per-user basis
Match User root,user2
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory none

 

【ChrootDirectory】难点:必须自己手工准备这个“chroot directory”

  • 可以自己从宿主系统通过ldd和strace从头分析、提取相关文件搭建;
  • 也可以直接找一个rootfs系统搭建,典型的如alpine-minirootfs-3.13.5-x86_64.tar
  • 再难点的,你可以通过baseos或docker image中提取相关文件系统来搭建
  • 更加骚的操作是,直接解压各种livecd的squashfs来搭建

 

【ChrootDirecory】注意事项:

  • sftp子系统,强烈推荐使用internal-sftp 来代替传统兼容模式的openssh-sftp
  • ssh登录一般不会有问题,但scp就不一定了。

 

posted on 2021-06-03 15:02  jinzhenshui  阅读(1649)  评论(0编辑  收藏  举报