1.首先安裝ssh服務html
sudo apt-get install openssh-server
2.爲sftp建立管理組安全
sudo addgroup sftp-users
3.建立SFTP用戶,並配置相應權限。這裏第二行的意思是將alice從全部其餘用戶組中移除並加入到sftp-users組,而且關閉其Shell訪問。若是想深刻了解usermod命令,可使用如下」man usermod」命令查看幫助文檔。ssh
sudo adduser alice sudo usermod -G sftp-users -s /bin/false alice
那天我誤將本身的帳號從本身組裏移除了,連sudo
權限都沒有了,後來用usermod -a -G caigan2015 caigan2015
恢復本身組,用usermod -a -G sudo caigan2015
恢復sudo
權限網站
4.建立SSH用戶組,並把管理員加入到該組(注意usermod中的-a參數的意思是不從其餘用戶組用移除)。code
sudo addgroup ssh-users sudo usermod -a -G ssh-users admin
【注:爲用戶添加管理員權限命令爲,sudo adduser admin sudo】server
5.建立監獄目錄。其實這是爲了安全起見來建立的目錄。該「監獄」目錄擁有如下權限:htm
1.超級管理root擁有全部權限
2.其餘任何用戶都不能擁有寫入權限。文檔
因此,爲了讓sftp能上傳文件,必須在「監獄」根目錄下再建立一個普通用戶可以寫入的共享文件目錄。爲了便於管理員經過SFTP管理上傳的文件,我把這個共享文件目錄配置爲:由root全部,容許sftp-users讀寫。這樣,管理員和SFTP用戶組成員就都能讀寫這個目錄了。get
sudo mkdir /home/sftp_root/shared -p sudo chown admin:sftp-users /home/sftp_root/shared sudo chmod 770 /home/sftp_root/shared
*固然,目錄具體位置由本身設定,好比我是一個網站管理員 我就設置爲
/var/www/html/
*。ftp
6.修改SSH配置文件。
sudo nano /etc/ssh/sshd_config
在sshd_config文件的最後,添加如下內容:
AllowGroups ssh-users sftp-users Match Group sftp-users ChrootDirectory /home/sftp_root AllowTcpForwarding no X11Forwarding no ForceCommand internal-sftp
這些內容的意思是:
只容許ssh-uers及sftp-users經過SSH訪問系統;
針對sftp-users用戶,額外增長一些設置:將「/home/sftp_root」設置爲該組用戶的系統根目錄(所以它們將不能訪問該目錄以外的其餘系統文件);禁止TCP Forwarding和X11 Forwarding;強制該組用戶僅僅使用SFTP。
若是須要進一步瞭解細節,可使用「man sshd_config」命令。這樣設置以後,SSH用戶組能夠訪問SSH,而且不受其餘限制;而SFTP用戶組僅能使用SFTP進行訪問,並且被關進監獄目錄。
7.重啓系統以便使新配置生效。
sudo reboot now
8.察看服務是否啓動。
rivsidn@rivsidn-Dell:~$ service --status-all [ + ] ssh