Linux下配置SFTP服務器

最近在做一個微信支付水電費的項目,是與興業銀行合作的項目,按照銀行的要求要配置一個SFTP服務器,上傳每天繳費的對賬單到SFTP服務器裏面,經過一段時間的摸索,終於配置成功了,跟大家分享一下,配置過程如下:

0、查看openssh的版本

1. ssh -V   

使用ssh -V 命令來查看openssh的版本,版本必須大於4.8p1,低於的這個版本需要升級。

1、創建sftp

1. groupadd sftp  

2、創建一個sftp用戶,用戶名爲mysftp密碼爲mysftp

修改用戶密碼和修改Linux用戶密碼是一樣的。

useradd -g sftp -s /bin/false mysftp  //用戶名
passwd
 mysftp  //密碼

1. useradd -g sftp -s /bin/false mysftp  

2. passwd mysftp  


3
sftp組的用戶的home目錄統一指定到/data/sftp下,按用戶名區分,這裏先新建一個mysftp目錄,然後指定mysftphome/data/sftp/mysftp

1. mkdir -p /data/sftp/mysftp  

2. usermod -d /data/sftp/mysftp mysftp  


4
、配置sshd_config
文本編輯器打開 /etc/ssh/sshd_config
 vi/etc/ssh/sshd_config

找到如下這行,用#符號註釋掉,大致在文件末尾處。
# Subsystem      sftp   /usr/libexec/openssh/sftp-server  

在文件最後面添加如下幾行內容,然後保存。

1. Subsystem       sftp    internal-sftp    

2. Match Group sftp    

3. ChrootDirectory /data/sftp/%u    

4. ForceCommand    internal-sftp    

5. AllowTcpForwarding no    

6. X11Forwarding no  


5
、設定Chroot目錄權限

1. chown root:sftp /data/sftp/mysftp  

2. chmod 755 /data/sftp/mysftp  


6
、建立SFTP用戶登入後可寫入的目錄

照上面設置後,在重啓sshd服務後,用戶mysftp已經可以登錄。但使用chroot指定根目錄後,根應該是無法寫入的,所以要新建一個目錄供mysftp上傳文件。這個目錄所有者爲mysftp,所有組爲sftp,所有者有寫入權限,而所有組無寫入權限。命令如下:

1. mkdir /data/sftp/mysftp/upload  

2. chown mysftp:sftp /data/sftp/mysftp/upload  

3. chmod 755 /data/sftp/mysftp/upload  


7
、修改/etc/selinux/config

文本編輯器打開/etc/selinux/config

1. vi /etc/selinux/config  

將文件中的SELINUX=enforcing 修改爲 SELINUX=disabled ,然後保存。

在輸入命令

1. setenforce 0  


8
、重啓sshd服務

輸入命令重啓服務。

1. service sshd restart  


9
、驗證sftp環境
mysftp用戶名登錄,yes確定,回車輸入密碼。

1. sftp [email protected]  

顯示 sftp> sftp搭建成功。

 

10、使用WinSCP,xftp等客戶端軟件連接SFTP服務器

輸入主機IP地址、用戶名、密碼、端口連接SFTP服務器,端口默認爲22

 

本人長期從事軟件工程師培訓,有30多門java相關的系列視頻課程,有興趣的朋友可以看看

http://edu.51cto.com/course/6946.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章