sftp服務搭建流程-centos 6.5


需求:公司需要做一個自動化導出賬單,賬單原始數據由第三方提供,為拿到原始sql數據,需要給第三方提供一台sftp服務器用來上傳sql表。

整體流程:使用系統自帶的sftp服務,首先創建給客戶使用的sftp賬號,讓他只能在指定的目錄下進行添加、修改、刪除操作,並且只能使用sftp登錄服務器,不能用ssh操作,保證可以上傳,下載即可。搭建完畢測試上傳及下載。提供sftp服務的有vsftpd和internal-sftp,這里用的是系統自帶的internal-sftp,操作步驟如下---------

OS環境:CentOS release 6.5 (Final)

1、建立一個名為sftpuserssftp用戶組

#groupadd sftpusers

 2、建立sftp賬號(使用-s /bin/false來禁止sftpeb這個賬戶ssh登錄權限),設置密碼

useradd -s /bin/false -g sftpusers sftpeb
passwd

 3、配置ssh和權限

vi /etc/ssh/sshd_config

4、修改為下面內容,保存退出

UsePAM yes      #UsePAM改成yes

#注釋掉這行
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
#添加在配置文件末尾
Subsystem sftp internal-sftp     #指定使用sftp服務使用系統自帶的internal-sftp
Match Group sftpusers             #匹配用戶,如果要匹配多個組,多個組之間用逗號分割
ChrootDirectory %h                 #用chroot指定sftp賬戶登錄的默認根目錄 
ForceCommand internal-sftp    #強制執行內部sftp,並忽略任何~/.ssh/rc文件中的命令
X11Forwarding no                #這兩行,如果不希望該用戶能使用端口轉發的話就加上,否則刪掉
AllowTcpForwarding no

5、修改 /home/sftpeb/目錄權限為root所有

chown root:root /home/sftpeb
chmod 755 /home/sftpeb

6、此時sftp用戶登錄后並不能上傳文件,那是因為登錄后默認是用戶目錄,比如/home/sftpeb,但是該目錄是root用戶擁有,因此我們還要修改權限。在用戶目錄下建立子目錄,讓sftpusers組中的用戶可讀寫文件

cd /home/sftpeb/
mkdir upload

7、授權upload文件夾讀寫 ,讓子文件夾upload屬於sftpeb

chown -R sftpeb /home/sftpeb/upload
chmod 755 -R /home/sftpeb/upload

8、檢查系統selinux是否關閉,如未關閉一定要關閉!(這點很重要,如果不關閉會導致無法上傳,出現權限不足問題“Permission denied“)

vim /etc/selinux/config
#將SELINUX=enforcing改為SELINUX=disabled
#getenforce檢查,為“Disabled”即表示已關閉selinux

 

9、重啟ssh服務,測試是否可用,測試命令如下

#登錄
sftp sftpeb@192.168.2.33
#上傳
put /tmp/test.txt
#下載
cd upload
get test.txt

 以上sftp搭建及測試完成,下一篇記錄使用sftp如何自動導入sql並自動生成賬單


免責聲明!

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



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