通過金鑰 SFTP(三)指定不限定根目錄

2021-09-11 04:29:25 字數 2208 閱讀 8480

1. 之前配置的**都是直接存在在了 /var/www

2、還沒有部署**的新伺服器,完全可行!

3、嘗試了使用 ln 軟連線 ,如果已經部署的**較少,還是可行的,需要轉移的****比較少

4. chrootdirectory 對於目錄要求很嚴,必須所有人是 root ,供上傳的子目錄最好 chmod 777

5. /var/www 之前的**很雜,有的所有人是root,有的是其他使用者

1. 使用金鑰方式 sftp 相對安全

2. 不允許 sftp 賬號 ssh 登入

3. 直接 sftp 登入直接指向 /var/www

4. 已經有 vsftp 存在,不能一刀切就停用 vsftp

結論:我們需要乙個賬戶

1. 限制它只能使用 sftp

2. 不能使用 ssh

3. 他的 home 目錄直接指向 /var/www

1. 建立新使用者,指定 home 為 /var/www

useradd -d /var/www dhbm162

2. 設定密碼

passwd dhbm162

** 以下限制登入,可以在測試完成之後進行

禁止登入

sudo usermod -s /usr/sbin/nologin dhbm162

或者 禁止shell

sudo usermod -s /bin/false dhbm162

恢復登入

sudo usermod -s /bin/bash dhbm162

3. 修改 sshd_config

sudo vim /etc/ssh/sshd_config

新增以下 match user 規則

###################

# add by wzh 2019017 only sftp users

match user dhbm162

forcecommand internal-sftp

# chrootdirectory /home/dhbm162/www/

** 注釋掉之前的 chrootdirectory

sudo systemctl restart sshd

4. 複製公鑰檔案,並修改 .ssh 許可權

sudo cp -r /home/dhbm/.ssh /var/www

sudo chmod -r 755 /var/www/.ssh

同時修改 /var/www

sudo chmod -r 777 /var/www

1. 測試 ssh

ssh [email protected]

this service allows sftp connections only.

connection to 192.168.1.162 closed.

2. 測試 sftp

sftp [email protected]

connected to [email protected].

sftp>

3. 測試 filezilla

新建站點

結果

以上方案雖然沒有限制 sftp 使用者 chrootdirectory,但是,使用金鑰方式,保證了一定的安全

直接指定了 /var/www 目錄,維持了過去 vsftp 的操作習慣

以上 sudo chmod -r 777 /var/www 應該是不安全的做法!**檔案任何人都可以修改?

還是需要指定擁有人才可以讀寫,其他人不可寫!

如果有需要寫許可權的 uplaod 目錄,必須手動單獨修改!

sudo chmod -r 755 /var/www

sudo chown -r ***x162:***x162 /var/www

** 現在有點兒理解 chrootdirectory 的根目錄為什麼最大只能 755 了!

C 通過SFTP操作類 連線sftp

先上傳 sftp操作類 1 public class sftphelper225 26 sftp連線狀態 27public bool connected 2829 連線sftp 30public bool connect 3141 return true 42 43catch 4447 48 49 ...

ssh通過金鑰進行驗證

ssh在兩台機器之間建立乙個安全通道,加密所有的資料。比如機器a通過ssh登入到機器b 機器a為ssh客戶端,機器b為ssh伺服器 1 確認在機器b上有乙個帳號。2 在機器a上生成金鑰對 ssh keygen t rsa 第一行輸入存放金鑰對的目錄,直接回車預設就行 自動存放在 ssh 目錄下,id...

ssh 通過rsa金鑰進行登入

ssh登入伺服器的方法大體上分為兩種 通過ssh使用使用者名稱密碼的方式登入 通過ssh使用金鑰對進行登入 本文主要闡述如何使用金鑰進行登入,以如如何管理多個金鑰對。即然是金鑰對,就說是兩個金鑰,我們把其中乙個需要存在本地計算機的金鑰稱為私鑰,把另乙個存放到伺服器的金鑰稱為公鑰。私鑰 要保護好的,不...