在公司,经常会用到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,否则下载时报错

搭建sftp服务+nginx代理的更多相关文章

  1. ubuntu 搭建Mercurial 服务(nginx)

    ubuntu 搭建Mercurial 服务(nginx) 环境:ubuntu 12.05  Mercurial 步骤: (1)安装nginx 和 Mercurial: sudo apt-get ins ...

  2. linux 上搭建sftp服务

    原文链接:https://www.cnblogs.com/yanduanduan/p/9046723.html sftp和ftp的区别 FTP是一种文件传输协议,一般是为了方便数据共享的.包括一个FT ...

  3. CentOS7搭建SFTP服务

    CentOS7.5环境下搭建SFTP服务. 创建用户组及用户 创建用户组 # groupadd sftpgroup 创建用户 $ useradd -g sftpgroup -s /sbin/nolog ...

  4. 使用Docker快速搭建sftp服务

    一.安装docker环境 参见 http://www.cnblogs.com/rslai/p/8403350.html 二.从Docker Hub查找sftp镜像 docker search sftp ...

  5. 在nginx环境下搭建https服务,代理到本地web项目

    安装过程略. 1.证书准备 本地调试,可以安装自签名证书,安装方法参考https本地自签名证书添加到信任证书访问 2.修改配置文件 将上面的配置文件拷贝到conf目录,添加或者修改节点如下 http{ ...

  6. 利用mysecureshell搭建sftp服务

    1.下载对应的mysecureshell-1.33-1.x86_64.rpm包 2.安装mysecureshell-1.33-1.x86_64.rpm 3.添加ftp用户 useradd ftp 4. ...

  7. nginx 与 tomcat 组合搭建web服务

    部分内容转自 http://www.cnblogs.com/naaoveGIS/ 1. Web服务 nginx是常用的web服务器,用于获取静态资源,类似的服务器还有apache. tomcat是基于 ...

  8. 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发

    前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...

  9. nginx代理tomcat后,tomcat获取真实(非proxy,非别名)nginx服务端ip端口的解决方案

    nginx代理tomcat后,tomcat获取服务端ip端口的解决方案 1.注意修改nginx配置代理,标红地方 #user nginx; worker_processes ; error_log l ...

随机推荐

  1. SDOI2017round1酱油记day0

    嗯... 现在是21:12...准备睡了. 睡前写下day0一天如何过的: 早上5点起床到教室早自习,迷迷糊糊的宣誓,背东西,英语听写: 都停课了为什么还要上早自习! 我!想!去!机!房! OI才是我 ...

  2. 用Wireshark分析Socket连接建立的过程

    0. 安装Wireshark,但是默认情况下,Wireshark无法捕获127.0.0.1的报文 解决方案:安装npcap,替换默认的winpacp,重新启动Wireshark,就可以看到一个名字中含 ...

  3. Cryptography I 学习笔记 --- 密钥交换

    1. 使用可信第三方(Trusted third parties)进行密钥交换. a. Alice与TTP之间的密钥是K1,Bob与TTP之间的密钥是K2. b. Alice向TTP发起一个与Bob交 ...

  4. ZOJ 3593.One Person Game-扩展欧几里得(exgcd)

    智障了,智障了,水一水博客. 本来是个水题,但是for循环遍历那里写挫了... One Person Game Time Limit: 2 Seconds      Memory Limit: 655 ...

  5. Educational Codeforces Round 39 (Rated for Div. 2) B. Weird Subtraction Process[数论/欧几里得算法]

    https://zh.wikipedia.org/wiki/%E8%BC%BE%E8%BD%89%E7%9B%B8%E9%99%A4%E6%B3%95 取模也是一样的,就当多减几次. 在欧几里得最初的 ...

  6. Akka之Actor生命周期

    我们首先来看一下官方给出的Actor的声明周期的图: 在上图中,Actor系统中的路径代表一个地方,其可能会被活着的Actor占据.最初路径都是空的.在调用actorOf()时,将会为指定的路径分配根 ...

  7. 初探ggplot2 geom__制作面积图

        大家大概都对如下信息图并不陌生,该图用100%堆积面积图的方式来表现不同时期不同国家人数所占的比例.这是一种很有意思的表达方式,而面积图也是很常用的数据图表,现在让我们一起来看看如何在R里用g ...

  8. Delphi 异或校验方法

    //数据异或校验function BytesXor(buffer:array of byte):Integer;var i:integer;begin Result:=$0; for i:=Low(b ...

  9. 初始----python数字图像处理--:环境安装与配置

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  10. js 简单getByClass得封装

    function getByClass(oParent,sClass){ var elems = oParent.getElementsByTagName("*"); var ar ...