美文网首页
Linux虚拟机配置SFTP服务(备份服务器)

Linux虚拟机配置SFTP服务(备份服务器)

作者: 2f486f1742f0 | 来源:发表于2019-11-02 23:39 被阅读0次

    步骤1 配置磁盘
    参考 Linux磁盘管理:LVM或Linux文件的 [磁盘管理:Linux新建数据盘] 章节。

    步骤2 创建SFTP用户组与用户
    groupadd sftpgrp //创建用户组
    useradd -g sftpgrp -s /usr/sbin/nologin -M sftpuser //创建用户,-g用户组,-s不能登录,-M不创建用户目录。
    chage -M 99999 sftpuser //修改用户密码不过期
    passwd sftpuser //设置mysftp用户的密码

    步骤3 配置SFTP目录
    3.1
    mkdir -p /backup/sftpuser //创建目录

    3.2
    usermod -d /backup/sftpuser sftpuser //指定用户目录,后面会用chroot指定
    chown root:root /backup /backup/sftpuser
    chmod 755 /backup /backup/sftpuser

    3.3
    //创建个不是chroot的、SFTP用户有权限写入的路径
    cd /backup/sftpuser/
    mkdir homepage
    chown sftpuser:sftpgrp /backup/sftpuser/homepage
    chmod 755 /backup/sftpuser/homepage

    注意:
    1、chroot要求1)目录及上级目录属主与属组需为root;2)只用属主有目录的写权限即最大755.
    2、chroot目录属主与权限设置错误会导致sftp登录失败,作者经验:在步骤5使用“ChrootDirectory %h”指定路径是用户目录后,要确保3.2和3.3已执行且正确。

    步骤4 配置selinux

    vi /etc/selinux/config
    
         SELINUX=disabled
         或
         SELINUX=permissive
    
     setenforce 0
    

    步骤5 配置/etc/ssh/sshd_config

    vi /etc/ssh/sshd_config
    
        //在132行左右注释下行
        Subsystem    sftp    /usr/libexec/openssh/sftp-server  
     
        //增加下面这行 
        Subsystem  sftp  internal-sftp 
    
        //在文件的最后,因为Match结尾标志是新的Match或文件结尾,%h表示只能访问默认的用户目录
        Match User sftpuser
        或
        Match Group sftpgrp
                X11Forwarding no   
                AllowTcpForwarding no  
                ForceCommand internal-sftp  
                ChrootDirectory %h
        
        //修改为以下
        MaxSessions 100
    
        //修改为以下
        MaxStartups 100
    
    service sshd restart  
    

    MaxSessions
    Specifies the maximum number of open shell, login or subsystem
    (e.g. sftp) sessions permitted per network connection. Multiple
    sessions may be established by clients that support connection
    multiplexing. Setting MaxSessions to 1 will effectively disable
    session multiplexing, whereas setting it to 0 will prevent all
    shell, login and subsystem sessions while still permitting for-
    warding. The default is 10.

    MaxStartups
    Specifies the maximum number of concurrent unauthenticated con-
    nections to the SSH daemon.
    Additional connections will be
    dropped until authentication succeeds or the LoginGraceTime
    expires for a connection. The default is 10:30:100.
    Alternatively, random early drop can be enabled by specifying the
    three colon separated values start:rate:full (e.g.
    "10:30:60"). sshd(8) will refuse connection attempts with a
    probability of rate/100 (30%) if there are currently
    start'' (10) unauthenticated connections. The probability
    increases linearly and all connection attempts are refused if the
    number of unauthenticated connections reaches full (60).

    步骤6 SFTP客户端登录验证
    建议使用命令行 sftp sftpuser@[IPv6地址] 来接入验证,而不是直接用sftp客户端,如果连接失败起码有稍明显的报错。

    FAQ

    1、SFTP登录提示“Connection closed”
    使用chage -l sftpuser查看返回结果的Password expires字段,一般是密码已经过期。

    相关文章

      网友评论

          本文标题:Linux虚拟机配置SFTP服务(备份服务器)

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