zoukankan      html  css  js  c++  java
  • 配置openssh实现sftp远程文件上传

    客服端:winscp等ftp/sftp客户端

    服务器:阿里云默认使用的openssh

    需求:可以sftp远程传输文件到服务器固定文件夹下,不可远程ssh登录

    步骤:

    1. 建立系统用户ftpuser及组ftpgroup

    useradd ftpuser

    groupadd ftpgroup

    2. 设置ftpuser密码

    passwd ftpuser

    然后输入密码

    3. 设置ftpuser远程不能ssh登录

    usermod -s /bin/false ftpuser

    可以cat /etc/passwd查看系统用户的登录情况及主目录

    4. 修改ftpuser主目录

    usermod -d /mnt/xxx/

    或者3、4步,统一用usermod -M -d /mnt/xxx/ -s /bin/false ftpuser

    5. 编辑ssh配置文件,指定用户及目录

    nano /etc/ssh/sshd_config,注释默认的Subsystem和UsePAM,并在最末尾添加以下几行(红字的)

    UseDNS no
    AddressFamily inet
    PermitRootLogin yes
    SyslogFacility AUTHPRIV
    PasswordAuthentication yes

    #--- 在UseDNS no这一行的下一行添加以下几行,不然报错,服务无法重启

    Subsystem sftp internal-sftp
    UsePAM yes
    Match User ftpuser
    ForceCommand internal-sftp
    ChrootDirectory /mnt/xxx

    AllowUsers root ftpuser #我用系统的sshd控制ssh远程登录,故也把ftpuser放入AllowUsers列表。

    6. 重启sshd服务

    service sshd restart

    7. 测试ftpuser的ssh和sftp登录情况

    ssh无法登录

    sftp可以,默认列出/mnt/xxx文件夹

    注意:

    •ftpuser的用户目录和ssh配置文件里的目录一致

    •ssh目录权限及所有者必须是755/root(上级目录所有者为root,组内不能是可写权限,否则fatal: bad ownership or modes for chroot directory "/mnt/xxx")

    •ftpuser得usermod里禁止ssh登录是/bin/false而不是/sbin/bash/nologin  (nologin是禁止了ssh和sftp)

    参考:

    http://blog.csdn.net/qq_35440678/article/details/52788808

    https://www.cnblogs.com/xjnotxj/p/6912471.html

    http://blog.csdn.net/kenight/article/details/36669679

  • 相关阅读:
    Neither BindingResult nor plain target object for bean name 'command' available as request attribute
    a href 相对路径 与绝对路径
    sql with as用法详解
    union和union all的区别
    从此不再惧怕URI编码:JavaScript及C# URI编码详解
    Server.UrlEncode、HttpUtility.UrlDecode的区别
    两种获取connectionString的方式
    微软SQLHelper.cs类 中文版
    web.config connectionStrings 数据库连接字符串的解释
    SQL Server 事务处理 回滚事务
  • 原文地址:https://www.cnblogs.com/thingk/p/8418338.html
Copyright © 2011-2022 走看看