1. 以前配置的網站都是直接存在在了 /var/www 二、尚未部署網站的新服務器,徹底可行! 三、嘗試了使用 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 ** 要求密鑰方式,因此,密碼無需告知上傳網站的程序員 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 dhbm162@192.168.1.162 This service allows sftp connections only. Connection to 192.168.1.162 closed. 2. 測試 SFTP sftp dhbm162@192.168.1.162 Connected to dhbm162@192.168.1.162. sftp> 3. 測試 FileZilla 新建站點
結果 程序員
以上方案雖然沒有限制 sftp 用戶 ChrootDirectory,可是,使用密鑰方式,保證了必定的安全 直接指定了 /var/www 目錄,維持了過去 vsftp 的操做習慣
以上 sudo chmod -R 777 /var/www 應該是不安全的作法!網站文件任何人均可以修改? 仍是須要指定擁有人才能夠讀寫,其餘人不可寫! 若是有須要寫權限的 uplaod 目錄,必須手動單獨修改! sudo chmod -R 755 /var/www sudo chown -R XXXX162:XXXX162 /var/www ** 如今有點兒理解 ChrootDirectory 的根目錄爲何最大隻能 755 了!