查看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,不然下載時報錯