搭建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,否則下載時報錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM