linux 搭建SFTP伺服器

2021-09-22 09:57:53 字數 2460 閱讀 7637

參考:

個人使用的是阿里雲的centos預設開啟了ssh

一開始以為:建立乙個使用者組,再新增幾個帳號,設定下許可權就好了

然而,to young to ****** 

步驟:1.建立乙個名為 sftp 的組

groupadd sftp  

2.建立使用者 sftp_admin

寫法1:

useradd -g sftp -s /sbin/nologin -m sftp_admin

-g 加入到sftp組

-s 禁止登入

-m 不要自動建立使用者的登入目錄

寫法2:

useradd -g sftp -s /bin/false -m sftp_admin

-g 加入到sftp組

-s 禁止登入(寫法不同,有啥差別,暫時不清楚)

-m 不要自動建立使用者的登入目錄

3.設定密碼

passwd  sftp_admin

重複輸入兩次密碼

4.建立sftp存放檔案的目錄

mkdir /home/sftp/admin

5.修改資料夾 擁有者

chown -r sftp_admin:sftp /home/sftp/admin/

-r  如果/home/sftp/admin/路徑下還有子檔案,則全部修改掉
6.設定,使用者登入後的 預設根目錄

usermod -d /tmp test (test為你的使用者名稱) 這種改法是無效的 

只能通過 修改配置檔案

vi /etc/ssh/sshd_config  

注釋掉這一行:subsystem sftp /usr/libexec/openssh/sftp-server

subsystem sftp internal-sftp

x11forwarding no

allowtcpforwarding no

forcecommand internal-sftp #限制root的ssh登入

match user sftp_admin #限制的使用者

chrootdirectory /home/sftp #使用者的根目錄

目錄許可權設定上要遵循2點:(需要格外注意)

chrootdirectory設定的目錄許可權及其所有的上級資料夾許可權,屬主和屬組必須是root;

chrootdirectory設定的目錄許可權及其所有的上級資料夾許可權,只有屬主能擁有寫許可權,也就是說許可權最大設定只能是755。

講真,這一塊坑了蠻久的

7.重啟配置

service sshd restart

(每次修改配置檔案後,如果是使用的filezilla客戶端來連線sftp,那filezilla客戶端也需要重啟)

***************===使用過程中,遇到的一些報錯********************==

修改了組寫入許可權報錯

bad ownership or modes for chroot directory "/home/sftp"

參考:使用ssh2訪問出現提示this service allows sftp connections only.

這是因為在server端設定的/etc/sshd_config檔案中,需要設定為: allowtcpforwarding 應該設定為yes才可。 如果沒有設定為yes的話,使用者就只能通過sftp訪問指定目錄,而且不能進行ssh登入. 只有把 allowtcpforwarding no 改為 allowtcpforwarding yes ,使用者才能通過ssh登入然後訪問目錄

filezilla連線報錯:

錯誤: server unexpectedly closed network connection

錯誤: 無法連線到伺服器

這個是,因為配置檔案  /etc/sshd_config中

當前登入的帳號  

chrootdirectory  對應的資料夾  不是root使用者 和root使用者組

但是有遇到了個大問題,root賬戶,不能進行ssh登入了

測試了下,只要把配置檔案裡面的這一行注釋掉,重啟 ssh服務後 就好了

forcecommand internal-sftp

遇到乙個問題:建立的組,成員之間不能互相修改檔案,每次都要手動改許可權,太麻煩了,

使用者建立資料夾的預設許可權:通過umask值來設定

umask介紹:

sftp chroot後如何設定umask:

修改配置檔案   /etc/pam.d/sshd

新增  session     optional pam_umask.so umask=0002

重啟sshd服務

**

Linux 搭建SFTP伺服器

系統centos 工具,自帶的internal sftp 1.首先檢視openssh版本 ssh v版本必須大於4.8p1,低於的這個版本需要公升級。2.建立sftp組 groupadd bmssftp3.建立sftp使用者 useradd g bmssftp s bin false bmssftp...

linux搭建sftp伺服器

目錄 一 sftp伺服器介紹 二 安裝步驟 sftp相對於ftp在資料傳輸的過程中對資料進行了加密,當然這也是有代價的,就是損耗了資料傳輸的一些效率,以此來保證資料的安全性。使用ftp需要進行安裝,但是使用sftp就無需進行安裝,sftp基於預設的22埠,是ssh內含的協議,只要啟動了sshd就可以...

Linux 搭建 SFTP伺服器

更新linux裡的模組 yum update 中間可能需要按y 或者加乙個 y的引數 建立使用者組,組名sftp groupadd sftp 建立兩個使用者,乙個是sftp的管理員使用者,乙個是普通使用者 這種寫法建立的使用者是不能登入的,強行登入會提示不允許,但是可以使用服務,例如列印服務等 us...