經過密鑰 SFTP (三):SFTP 帳戶指定(不是限定)根目錄

20190127 以前限制 ChrootDirectory 以後,須要對原有環境改造較多

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 了!
相關文章
相關標籤/搜索