CentOS7搭建sftp服務

2021-10-24 19:32:02 字數 2067 閱讀 1104

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...