sftp簡介
sftp是secure file transfer protocol的縮寫,安全檔案傳送協議。可以為傳輸檔案提供一種安全的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。sftp 為 ssh的一部分,是一種傳輸檔案至 blogger 伺服器的安全方式。其實在ssh軟體包中,已經包含了乙個叫作sftp(secure file transfer protocol)的安全檔案傳輸子系統,sftp本身沒有單獨的守護程序,它必須使用sshd守護程序(埠號預設是22)來完成相應的連線操作,所以從某種意義上來說,sftp並不像乙個伺服器程式,而更像是乙個客戶端程式。sftp同樣是使用加密傳輸認證資訊和傳輸的資料,所以,使用sftp是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的ftp要低得多,如果您對網路安全性要求更高時,可以使用sftp代替ftp。
準備工作:
使用root使用者檢視openssh的版本:版本需大於4.8p1
ssh -v // 如果版本過低,可以使用 yun update 進行更新
一、建立sftp組
groupadd sftp
二、建立user使用者並設定密碼
useradd -g sftp -s /bin/false user
-g 加入到sftp組
-s 禁止使用命令
passwd user
兩種寫法的區別: /sbin/nologin與/bin/false的對比
三、為sftp組使用者建立home目錄,並指定根目錄為/data/sftp,按使用者名稱區分,為user使用者建立user目錄,然後指定user的home為/data/sftp/user
# mkdir -p /data/sftp/user
# usermod -d /data/sftp/user user
-d 表示修改使用者登入時的目錄
四、配置sshd_config
注:
1、注掉原有服務使用internal-sftp的好處:
2、match用來匹配sftp組的使用者,若有多個組可用逗號分割
3、allowtcpforwarding no 和 x11forwarding no
這兩行,如果不希望該使用者能使用埠**的話就加上,否則刪掉
4、chrootdirectory /data/sftp/%u
chroot將使用者的根目錄指定到/data/sftp/%u,%u代表使用者名稱,該使用者只能在/data/sftp/%u下操作
chroot詳解參見:
5、forcommand internal-sftp
指定sftp命令
五、設定chroot許可權
# chown root:sftp /data/sftp/user
屬主:root,屬組:sftp
# chmod 755 /data/sftp/user
root有讀寫執行的許可權,sftp組無寫的許可權,其他使用者也無寫的許可權
六、建立sftp使用者登入後可寫入的目錄
如上設定後,在重啟sshd服務後,使用者user已經可以登入,但使用chroot指定根目錄後,根應該是無法寫入的,所以要新建乙個目錄供user上傳檔案。這個目錄所有者為user,所有組為sftp,所有者有寫入許可權,而所有組無寫入許可權。
# mkdir /data/sftp/user/upload
# chown user:sftp /data/sftp/user/upload
# chmod 755 /data/sftp/user/upload
七、重啟sshd服務
# systemctl restart sshd
參考:
**多使用者可參考:
Centos7搭建sftp伺服器
建立使用者組 groupadd sftpgroup 建立完成之後使用cat etc group命令組的資訊 cat etc group 建立使用者並且加入到這個使用者組,並修改mysftp使用者的密碼 useradd g sftpgroup m s sbin nologin mysftp passw...
Centos7 搭建 Gitlab 服務
1 安裝基礎包 yum y install curl policycoreutils openssh server openssh clients2 啟動 sshd systemctl enable sshd systemctl start sshd3 新增防火牆規則 yum install git...
CentOS 7 搭建SVN服務
centos 7 搭建svn服務 安裝步驟入下 1 yum install subversion 2 檢視安裝版本 svnserve version 3 建立svn版本庫目錄 mkdir p var svn svntest 4 建立版本庫 svnadmin create var svn svntes...