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,否则下载时报错
  • 相关阅读:
    May 1 2017 Week 18 Monday
    April 30 2017 Week 18 Sunday
    April 29 2017 Week 17 Saturday
    April 28 2017 Week 17 Friday
    April 27 2017 Week 17 Thursday
    April 26 2017 Week 17 Wednesday
    【2017-07-04】Qt信号与槽深入理解之一:信号与槽的连接方式
    April 25 2017 Week 17 Tuesday
    April 24 2017 Week 17 Monday
    为什么丑陋的UI界面却能创造良好的用户体验?
  • 原文地址:https://www.cnblogs.com/lzcys8868/p/7061818.html
Copyright © 2011-2022 走看看