zoukankan      html  css  js  c++  java
  • VM中Linux系统通过SFTP传输文件

    需求是将Windows系统中的文件传到VM下Linux系统中(CentOS7),记录下使用SFTP传输文件的操作方法。

    一、相关配置

    #创建sftp组:
    groupadd sftp
    #创建一个用户sftpuser:
    useradd -g sftp -s /bin/false sftpuser
    #设置sftpuser用户的密码,需要输入两次确认密码:
    passwd sftpuser
    
    #创建一个sftp的上传目录:(如指定已有目录则无需创建,跳过此步)
    mkdir /datas/sftpfiles
    #修改用户sftpuser所在的目录:
    usermod -d /datas/sftpfiles sftpuser
    
    配置sshd_config
    vi /etc/ssh/sshd_config
    
    #找到如下这行,并注释掉
    #Subsystem sftp /usr/libexec/openssh/sftp-server
    
    #添加如下几行(如果添加之后出现问题,则添加到最后)
    Subsystem sftp internal-sftp       #这行指定使用sftp服务使用系统自带的internal-sftp
    Match User sftpuser                #这行用来匹配用户
    ChrootDirectory /datas/sftpfiles   #用chroot将用户的根目录指定到/datas/sftpfiles,这样用户就只能在/datas/sftpfiles下活动
    AllowTcpForwarding no
    ForceCommand internal-sftp         #指定sftp命令
    
    #保存退出
    

    为什么用 internal-sftp 而不用默认的 sftp-server,这是因为:
    这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件;
    更好的性能,不用为 sftp 再开一个进程。

    #设定Chroot目录权限:
    chown -R root:root /datas/sftpfiles
    chmod 755 /datas/sftpfiles
    
    #建立SFTP用户登入后可写入的目录:
    mkdir /datas/sftpfiles/sftpuser      #如指定已有目录则无需创建,跳过此步,后面路径对应填写即可
    chown -R sftpuser:sftp /datas/sftpfiles/sftpuser/
    chmod 755 /datas/sftpfiles/sftpuser/
    
    #重启sshd服务:
    service sshd restart
    
    关闭SElinux:
    vi /etc/sysconfig/selinux
    
    #找到如下这行 
    SELINUX=enforcing
    
    #修改为
    SELINUX=disabled
    

    二、文件传输

    以WinSCP为例,打开后输入上面配置好的sftp用户名和密码,登录即可在物理机与Linux系统进行文件传输。

  • 相关阅读:
    继承LIst 的类JSON序列化,无法序列化属性的问题
    C#深入学习:泛型修饰符in,out、逆变委托类型和协变委托类型
    12.Java web--过滤器与监听器
    11.Java web—servlet
    10.Java web—JavaBean
    9.Java web—JSP内置对象
    8.Java web—JSP基本语法
    Ubuntu 插入鼠标自动禁用触控板
    Ubuntu安装VLC播放器
    Ubuntu快捷键
  • 原文地址:https://www.cnblogs.com/LukeSteven/p/13490404.html
Copyright © 2011-2022 走看看