美文网首页
sftp ssh服务分离

sftp ssh服务分离

作者: Jetlag时 | 来源:发表于2020-07-11 00:27 被阅读0次

    一、分离SSH和SFTP服务

    系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的。

         具体操作如下:
    

    1.1 复制SSH相关文件,作为sftp的配置文件

    1、 拷贝/usr/lib/systemd/system/目录下的sshd.service文件,放到/etc/systemd/system/目录下,命名为:sftpd.service
    cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service

    2、 拷贝/etc/pam.d/目录下的sshd文件,放到同目录,命名为:sftpd
    cp /etc/pam.d/sshd /etc/pam.d/sftpd

    3、 拷贝/etc/ssh/目录下的sshd_config文件,放到同目录,命名为:sftpd_config
    cp /etc/ssh/sshd_config /etc/ssh/sftpd_config

    4、 对service和rcsftpd进行软连接
    ln -sf /usr/sbin/service /usr/sbin/rcsftpd

    5、 对sshd和sftpd进行软连接
    ln -sf /usr/sbin/sshd /usr/sbin/sftpd

    6、 拷贝/etc/sysconfig/目录下的sshd文件,放到同目录,命名为:sftp
    cp /etc/sysconfig/sshd /etc/sysconfig/sftp

    7、 拷贝/var/run/目录下的sshd.pid文件,放到同目录,命名为:sftpd.pid
    cp /var/run/sshd.pid /var/run/sftpd.pid

    2.2 修改复制好的配置文件

    1、 修改/etc/systemd/system/目录下sftpd.service文件
    vim /etc/systemd/system/sftpd.service

    [Unit]

    Description=sftpd server daemon

    Documentation=man:sshd(8) man:sshd_config(5)

    After=network.target sshd-keygen.service

    Wants=sshd-keygen.service

    [Service]

    Type=notify

    EnvironmentFile=/etc/sysconfig/sftp

    ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config

    ExecReload=/bin/kill -HUP $MAINPID

    KillMode=process

    Restart=on-failure

    RestartSec=42s

    [Install]

    WantedBy=multi-user.target

    2、 修改/etc/ssh/目录下的sftpd_config文件
    vim /etc/ssh/sftpd_config
    具体修改如下:
    Port 22 改成Port 指定端口

    PermitRootLogin yes

    改成
    PermitRootLogin no
    就是取消该行的注释,并将yes改成no,这行参数的目的是拒绝root用户登录

    PidFile /var/run/sshd.pid

    改成
    PidFile /var/run/sftpd.pid
    就是取消该行的注释,并将sshd.pid改成sftpd.pid

    Subsystem sftp /usr/libexec/openssh/sftp-server
    注释

    Subsystem sftp /usr/libexec/openssh/sftp-server并添以下5行

    Subsystem sftp internal-sftp
    Match User sftpuser
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

    3、 清空/var/run/目录下的sftpd.pid文件内容

    > /var/run/sftpd.pid

     **将内容删掉**
    

    4、 添加sftp的专用账户
    useradd sftpuser
    passwd sftpuser
    usermod -s /bin/false sftpuser

    5、 禁用selinux
    setenforce 0

    6、 重启sftpd服务
    systemctl daemon-reload
    systemctl start sftpd

    相关文章

      网友评论

          本文标题:sftp ssh服务分离

          本文链接:https://www.haomeiwen.com/subject/yfqbcktx.html