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
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使用金鑰對進行登入 本文主要闡述如何使用金鑰進行登入,以如如何管理多個金鑰對。即然是金鑰對,就說是兩個金鑰,我們把其中乙個需要存在本地計算機的金鑰稱為私鑰,把另乙個存放到伺服器的金鑰稱為公鑰。私鑰 要保護好的,不...