zoukankan      html  css  js  c++  java
  • sftp文件服务器设置

    配置sftp服务

    目前越来越多的FTP客户端软件开始支持SSH协议上传和下载文件,这种协议方式就是SFTP。

    SFTP的优势主要有两点,一是不需要再配置个FTP服务端;二是SSH协议是安全传输,上传和下载是经过加密的。

    下面介绍下在最常用的服务器系统 CentOS Linux 7 上配置 SFTP 的方式!

    一、sftp 安装

    第一步:创建sftp服务用户组,创建sftp服务根目录:

    1
    2
    3
    4
    groupadd sftp
    #此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp
    chown -R root /var/sftp
    chmod -R 755 /var/sftp

    第二步:创建sftp服务用户:

    #添加用户 使用参数 -s /sbin/nologin禁止用户通过命令行登录 
    useradd -g sftp -d /home/sftp/silent -s /sbin/nologin silent

    第三步:为sftp服务用户添加密码

    passwd silent

    第四步:配置sshd_config:

    vim /etc/ssh/sshd_config
    
    注释掉下面这一行:
    Subsystem  sftp    /usr/libexec/openssh/sftp-server

    在sshd_config最后加入下面这几

    Subsystem sftp internal-sftp
    Match Group sftp
        ChrootDirectory /home/sftp/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

    注:这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面

     第五步:重启sshd:

    systemctl restart sshd

    现在可以正常连接了,但是可能还有个问题,就是无法上传,于是我们需要设置下写入权限:

    chown root -R /var/sftp/silent
    chmod -R 755 /var/sftp/silent

    二、sftp 简单操作

    测试

    目前越来越多的FTP客户端软件开始支持SSH协议上传和下载文件,这种协议方式就是SFTP。

    SFTP的优势主要有两点,一是不需要再配置个FTP服务端;二是SSH协议是安全传输,上传和下载是经过加密的。

    下面介绍下在最常用的服务器系统 CentOS Linux 7 上配置 SFTP 的方式!

    一、sftp 安装

    第一步:创建sftp服务用户组,创建sftp服务根目录:

    1
    2
    3
    4
    groupadd sftp
    #此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp
    chown -R root /var/sftp
    chmod -R 755 /var/sftp

    第二步:创建sftp服务用户:

    #添加用户 使用参数 -s /sbin/nologin禁止用户通过命令行登录 
    useradd -g sftp -d /home/sftp/silent -s /sbin/nologin silent

    第三步:为sftp服务用户添加密码

    passwd silent

    第四步:配置sshd_config:

    vim /etc/ssh/sshd_config
    
    注释掉下面这一行:
    Subsystem  sftp    /usr/libexec/openssh/sftp-server

    在sshd_config最后加入下面这几行:

    Subsystem sftp internal-sftp
    Match Group sftp
        ChrootDirectory /home/sftp/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

    注:这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面

     第五步:重启sshd:

    systemctl restart sshd

    现在可以正常连接了,但是可能还有个问题,就是无法上传,于是我们需要设置下写入权限:

    chown root -R /var/sftp/silent
    chmod -R 755 /var/sftp/silent

    二、sftp 简单操作

    测试

    目前越来越多的FTP客户端软件开始支持SSH协议上传和下载文件,这种协议方式就是SFTP。

    SFTP的优势主要有两点,一是不需要再配置个FTP服务端;二是SSH协议是安全传输,上传和下载是经过加密的。

    下面介绍下在最常用的服务器系统 CentOS Linux 7 上配置 SFTP 的方式!

    一、sftp 安装

    第一步:创建sftp服务用户组,创建sftp服务根目录:

    1
    2
    3
    4
    groupadd sftp
    #此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp
    chown -R root /var/sftp
    chmod -R 755 /var/sftp

    第二步:创建sftp服务用户:

    #添加用户 使用参数 -s /sbin/nologin禁止用户通过命令行登录 
    useradd -g sftp -d /home/sftp/silent -s /sbin/nologin silent

    第三步:为sftp服务用户添加密码

    passwd silent

    第四步:配置sshd_config:

    vim /etc/ssh/sshd_config
    
    注释掉下面这一行:
    Subsystem  sftp    /usr/libexec/openssh/sftp-server

    在sshd_config最后加入下面这几行:

    Subsystem sftp internal-sftp
    Match Group sftp
        ChrootDirectory /home/sftp/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

    注:这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面

     第五步:重启sshd:

    systemctl restart sshd

    现在可以正常连接了,但是可能还有个问题,就是无法上传,于是我们需要设置下写入权限:

    chown root -R /var/sftp/silent
    chmod -R 755 /var/sftp/silent

    登录测试
    sftp silent@127.0.0.1
    silent@127.0.0.1's password: 
     

    远程挂载

    服务器上可以使用sshfs将远程文件系统映射到本地目录。使用起来更方便。

    1. sshfs软件安装

    #ubuntu上安装

    apt-get install sshfs

    #Fedore上安装

    yum install fuse-sshfs

    #CentOS上安装

    方法1:yum安装

    默认源无该工具,需要先安装EPEL源

    yum install -y epel-release

    yum -y install fuse-sshfs


    yum list fs-sshfs

    Installed Packages
    fuse-sshfs.x86_64                2.5-1.el7                @epel

    方法2:下载rpm安装

    下载rpm文件for Centos7:

    wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/fuse-sshfs-2.5-1.el7.rf.x86_64.rpm

    需要先下载安装fuse(安装fuse-sshfs依赖于fuse)

    yumdownloader fuse-libs

    yumdownloader  fuse

    rpm -Uvh fuse-libs-2.9.2-7.el7.x86_64.rpm

    rpm -Uvh fuse-2.9.2-7.el7.x86_64.rpm

    安装fuse-sshfs

    # rpm -ivh fuse-sshfs-2.2-1.el7.rf.x86_64.rpm 

    如果fuse没有安装,会报错:

    warning: fuse-sshfs-2.2-1.el7.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
    error: Failed dependencies:
            fuse >= 2.2 is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
            libfuse.so.2()(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
            libfuse.so.2(FUSE_2.2)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
            libfuse.so.2(FUSE_2.5)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
            libfuse.so.2(FUSE_2.6)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
            libfuse.so.2(FUSE_2.7)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64


    方法3:编译安装
    下载:https://github.com/libfuse/sshfs/releases
    当前最新版本:sshfs-3.2.0.tar.gz
    tar xvf sshfs-3.2.0.tar.gz
    ./configure --prefix=/usr/local/sshfs
    make
    make install

    2. sshfs使用--挂载目录

    语法:

    sshfs user@hostname:path mout_point

    举例:

    先创建一个挂载点目录:

    mkdir /mnt/sftpSrvData

    挂载远程目录到本地挂载点目录:

    本地服务器

    sshfs -o ro root@127.0. 0. 0:/opt/sftpSrvRootDir  /mnt/sftpSrvData

    远程服务器

    sshfs -o ro root@192.168.100.111:/opt/sftpSrvRootDir  /mnt/sftpSrvData

    常用参数:

    -o ro: 只读方式挂载。如果不指定参数,默认是读写方式挂载。

    -o rw: 读写方式挂载。如果不指定参数,默认读写方式挂载。



    设置开机自动挂载

    vim /etc/fstab 加入下面一行: 

    sshfs#user@hostname:path mount_point fuse defaults,auto,allow_other 0 0 

    需要设置服务器之间允许SSH无密码登录,系统重启之后才能自动挂载文件系统。

    如果服务器配置为基于SSH密钥的认证方式,则/etc/fstab中加入如下行:

    sshfs#user@hostname:path mount_point fuse IdentityFile=~/.ssh/id_rsa defaults,auto,allow_other 0 0 

    接下来,你需要更新 fstab 文件使修改生效。

    # mount -a 


    3.卸载挂载目录
    fusermount -u mount_point 

    如果出现提示:device is busy

    可继续通过下面命令卸载:umount -fl ./sftpSrvData 

    常见问题:

    操作权限问题

    出现执行挂载命令以后,shell命令可以直接进入挂载点操作,但远程程序一直无法操作成功。原因是需要加上 -o 参数:

    sshfs root@192.168.100.111:/opt/sftpSrvRootDir  /mnt/sftpSrvData  -o allow_other

    如果使用-o参数,需要增加一个配置文件:/etc/fuse.conf,添加一行记录,

    vim /etc/fuse.conf

    user_allow_other

  • 相关阅读:
    lucene初探
    直接插入排序算法(java)
    快速排序优化算法
    大根堆
    学习资料地址
    Lucene:基于Java的全文检索引擎简介
    开关按钮
    微信小程序—如何获取用户输入文本框的值
    微信小程序—获取用户网络状态和设备的信息
    Bootstrap 导航栏
  • 原文地址:https://www.cnblogs.com/hcs88/p/13577234.html
Copyright © 2011-2022 走看看