zoukankan      html  css  js  c++  java
  • 搭建sftp服务+nginx代理

         在公司,经常会用到sftp服务,比如两个公司对接生产项目,其中一方,要在sftp上上传pdf文件,另一方公司要在sftp服务器上用nginx代理直接下载pdf文件。下面就说说我在实际中应用到的sftp服务+nginx代理的配置方法:

    一.环境:

    192.168.16.12     centos6.5
    在Centos 6.5环境使用系统自带的internal-sftp搭建SFTP服务器。
     
     
    二.查看版本
    查看openssh的版本,使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级
    [root@master ~]# ssh -V
    OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
    [root@master sftpd]# /etc/init.d/iptables stop
    [root@master sftpd]# setenforce 0
    setenforce: SELinux is disabled
     
    1.创建三个用户:test1     test2    test3
        创建用户的家目录:/data/sftpd/test1     /data/sftpd/test2    /data/sftpd/test3
        创建三个用户组,分别与用户对应:sftp-test1     sftp-test2   sftp-test3
    1.1创建用户组
    [root@localhost ~]# groupadd sftp-test1
    [root@localhost ~]# groupadd sftp-test2
    [root@localhost ~]# groupadd sftp-tes3
     
    1.2 创建用户的家目录
    [root@localhost ~]# mkdir -pv /data/sftpd/test1
    mkdir: 已创建目录 "/data"
    mkdir: 已创建目录 "/data/sftpd"
    mkdir: 已创建目录 "/data/sftpd/test1"
    [root@localhost ~]# mkdir -pv /data/sftpd/test2
    mkdir: 已创建目录 "/data/sftpd/test2"
    [root@localhost ~]# mkdir -pv /data/sftpd/test3
    mkdir: 已创建目录 "/data/sftpd/test3"
    [root@MQ2 ]# pwd
    /data/sftpd/test3/      //此处的家目录名可以随便创建,我公司要求项目平台与用户名相同。用户进来就可以看到他的家目录
     
    1.3 创建用户,并指定到相应的用户组里
    [root@localhost ~]# useradd -g sftp-test1 -s /sbin/nologin -d /data/sftpd/test1/  test1
    useradd:警告:此主目录已经存在。
    不从 skel 目录里向其中复制任何文件。
    [root@localhost ~]# useradd -g sftp-test2 -s /sbin/nologin -d /data/sftpd/test2/ test2
    useradd:警告:此主目录已经存在。
    不从 skel 目录里向其中复制任何文件。
    [root@localhost ~]# useradd -g sftp-test3 /sbin/nologin -d /data/sftpd/test3/ test3
    useradd:警告:此主目录已经存在。
    不从 skel 目录里向其中复制任何文件。
     
     
    2.设置用户密码  670e3c2cc    r690bk79j     uxzer73z9
    [root@localhost ~]# passwd test1
    更改用户 test1 的密码 。 
    新的 密码:   670e3c2cc
    重新输入新的 密码:   670e3c2cc
    passwd: 所有的身份验证令牌已经成功更新。
     
    [root@localhost ~]# passwd test2
    更改用户tset2 的密码 。
    新的 密码:   r690bk79j
    重新输入新的 密码:r690bk79j3
    passwd: 所有的身份验证令牌已经成功更新。
     
    [root@localhost ~]# passwd test3
    更改用户test3 的密码 。
    新的 密码: uxzer73z9
    重新输入新的 密码:
    passwd: 所有的身份验证令牌已经成功更新。
     
     
     
    3.配置sshd_config  配置文件
    [root@localhost ~]# cd /etc/ssh/
    [root@localhost ssh]# cp sshd_config sshd_config.bak
    [root@localhost ssh]# vim sshd_config
    132 #Subsystem      sftp    /usr/libexec/openssh/sftp-server
    133 Subsystem       sftp    internal-sftp
    134 Match Group test1,test3,test2    //此处是用户组的家目录
    135 ChrootDirectory %h     //%h  代表的是用户的目录    %u代表的是用户
    136 ForceCommand    internal-sftp
    137 AllowTcpForwarding no
    138 X11Forwarding no
     
     
    4.设置Chroot 目录权限
    [root@localhost  /data/sftpd/]# chown -R test1:sftp-test1 test1/     //要求test1的属主和属组分别是test1,sftp-test1。test2和test3同理,否则登陆不上
    [root@localhost ~]# chmod 755 /data/sftpd/test1
    [root@localhost ssh]# chown test2:sftp-test2 /data/sftpd/test2/
    [root@localhost ~]# chmod 755 /data/sftpd/test2/
    [root@localhost ssh]# chown test3:sftp-test3 /data/sftpd/test3/
    [root@localhost ~]# chmod 755 /data/sftpd/test3/
     
    5.建立SFTP用户登入后可写入的目录
    [root@localhost ssh]# cd /data/sftpd/
    [root@localhost sftpd]# ls
    test1  test2  test3
     [root@localhost sftpd]# cd test1
    [root@localhost sftpd]# mkdir xiaofeidai
    [root@localhost sftpd]# ls
    xiaofeidai
    [root@localhost sftpd]# chmod  o-x  -R  test1    //限制其他用户访问test1用户的目录。
     
    6. test2,test3 用户的家目录依上操作,略。
     
     
    7.重启sshd服务
    [root@localhost sftpd]# /etc/init.d/sshd restart
    停止 sshd:                                                [确定]
    正在启动 sshd:                                            [确定]
     
     
    8.验证sftp服务,本地登录sftp服务器
     
    [root@localhost sftpd]# sftp test1@127.0.0.1
    Connecting to 127.0.0.1...
    The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
    RSA key fingerprint is 74:09:81:67:99:48:e0:0b:bf:a1:f0:0f:2d:74:db:14.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts.
    shuojin@127.0.0.1's password:  670e3c2cc7
    sftp> ls
    xiaofeidai
    注:如果ssh更改过登陆端口,采用:
    sftp -oPort=XXX  test1@127.0.0.1
     
     
    9.windows 下采用sftp工具连接,略
     

    二.采用nginx代理下载sftp里边的pdf文件
    1.搭建nignx--略
     
    2.nginx配置:
     35     server {
     36         listen       80;
     37         server_name  localhost;
    。。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。。。
     51         location /test1/ {
     52             root /data/sftpd;
     
    3.test2   test3  nginx配置依上操作。
     
    4.修改完nginx配置文件后,使用平滑重启命令,重启nginx:
    [root@localhost ]# killall -s HUP nginx
    5.浏览器验证,下载pdf文件
    http://192.168.16.12/test1/xiaofeidai/*.pdf
    注:pdf文件的属主与属组必须和文件属性一样。目录权限为755,文件权限为644,否则下载时报错
  • 相关阅读:
    API下载文件
    c# 测试网络连接
    C# Word 插入签名图片
    c# word文档合并
    c# 文件筛选
    e
    基本初等函数(Basic elementary function)
    前端性能优化学习
    解决点击穿透的最佳实践
    ObjectARX通过选定的实体获取所有组名示例
  • 原文地址:https://www.cnblogs.com/lzcys8868/p/7061818.html
Copyright © 2011-2022 走看看