CentOS安裝SFTP

服務器以centOS爲例.shell

首先爲何要搭建sftp? 答案: 容許某些用戶上傳及下載文件,可是這些用戶只能使用sftp傳送文件,不能使用SSH終端訪問服務器,並且sftp不能訪問系統文件服務器

ssh -V 查看open ssh的版本
若是沒有請在服務器上安裝openSSH
sudo yum install openssh-server

建立sftp組ssh

groupadd sftp-users

添加一個用戶測試

sudo adduser chcuser
//刪除一個用戶 測試
sudo userdel chcuser
//關閉shell訪問
useradd -g sftp-users -s /bin/false chcuser

建立ssh用戶組,把管理員加到該組vagrant

sudo usermod -a -G ssh-users vagrant

準備sftp的根目錄及共享目錄。這裏解釋一下,sftp的根目錄必須知足如下要求:全部者爲root,其餘任何用戶都不能擁有寫入權限。所以,爲了讓SFTP用戶可以上傳文件,還必須在「監獄」根目錄下再建立一個普通用戶可以寫入的共享文件目錄。爲了便於管理員經過SFTP管理上傳的文件,我把這個共享文件目錄配置爲:由root全部,容許sftp-users讀寫。這樣,管理員和SFTP用戶組成員就都能讀寫這個目錄了。(注意,下面提到的Chroot對權限要求很是嚴格,此處的 /home/sftp_root權限必須爲755)code

sudo mkdir /home/sftp_root
sudo mkdir /home/sftp_root/shared
sudo chown root:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared

修改SSH配置文件。server

sudo VIM /etc/ssh/sshd_config

在sshd_config文件的最後,添加如下內容:ftp

Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

這些內容的意思是: 針對sftp-users用戶,額外增長一些設置:將/home/sftp_root設置爲該組用戶的系統根目錄(所以它們將不能訪問該目錄以外的其餘系統文件);禁止TCP ForwardingX11 Forwarding強制該組用戶僅僅使用SFTP。配置

若是須要進一步瞭解細節,可使用man sshd_config命令。這樣設置以後,SSH用戶組能夠訪問SSH,而且不受其餘限制;而SFTP用戶組僅能使用SFTP進行。 END終端

相關文章
相關標籤/搜索