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系统进行文件传输。

  • 相关阅读:
    C#实现汉字转换为拼音缩写的代码
    C# 使用xsd文件验证XML 格式是否正确
    C#用天气预报的WebServices
    c# socket通信较完善方案
    C#操作MySQL数据库-----HelloWorld
    c# 自己制作一个简单的项目倒计时器
    C# 制作外挂常用的API
    C#中如何计算时间差?
    C# 图片保存到数据库和从数据库读取图片并显示
    c#加密 可逆与不可逆MD5 加密
  • 原文地址:https://www.cnblogs.com/LukeSteven/p/13490404.html
Copyright © 2011-2022 走看看