1. 程式人生 > 實用技巧 >Linux之搭建sftp

Linux之搭建sftp

  轉載:https://juejin.im/post/6844903990904242184

0、檢視openssh的版本

ssh -V 
#使用ssh -V 命令來檢視openssh的版本,版本必須大於4.8p1,低於的這個版本需要升級。

1、建立sftp組

groupadd sftp   

2、建立一個sftp使用者,使用者名稱為mysftp,密碼為mysftp

#修改使用者密碼和修改Linux使用者密碼是一樣的。
useradd -g sftp -s /bin/false mysftp  //使用者名稱
passwd mysftp 密碼

3、sftp組的使用者的home目錄統一指定到/var/sftp下,按使用者名稱區分,這裡先新建一個mysftp目錄,然後指定mysftp的home為/var/sftp/mysftp

mkdir -p /var/sftp/mysftp  
usermod -d /var/sftp/mysftp mysftp  

4、配置sshd_config

#文字編輯器開啟 /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
#找到如下這行,用#符號註釋掉,大致在檔案末尾處。
# Subsystem      sftp    /usr/libexec/openssh/sftp-server  

#在檔案最後面新增如下幾行內容,然後儲存。

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /var
/sftp ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

5、設定Chroot目錄許可權

chown root:sftp /data/sftp/mysftp  
chmod 755 /data/sftp/mysftp 

6、建立SFTP使用者登入後可寫入的目錄

#照上面設定後,在重啟sshd服務後,使用者mysftp已經可以登入。但使用chroot指定根目錄後,根應該是#無法寫入的,所以要新建一個目錄供mysftp上傳檔案。這個目錄所有者為mysftp,所有組為sftp,所有#者有寫入許可權,而所有組無寫入許可權。命令如下:

mkdir 
/var/sftp/mysftp/upload chown mysftp:sftp /var/sftp/mysftp/upload chmod 755 /var/sftp/mysftp/upload

7、修改/etc/selinux/config

#文字編輯器開啟/etc/selinux/config
vim /etc/selinux/config 
#將檔案中的SELINUX=enforcing 修改為 SELINUX=disabled ,然後儲存。

#在輸入命令
setenforce 0

8、重啟sshd服務

#輸入命令重啟服務。
service sshd restart 

9、驗證sftp環境

#用mysftp使用者名稱登入,yes確定,回車輸入密碼。
sftp sftpuser@127.0.0.1     
#顯示 sftp> 則sftp搭建成功。
<sftp -oPort=22 sftpuser@127.0.0.1>

10、使用FileZilla FTP Client連線SFTP伺服器

  輸入主機IP地址、使用者名稱、密碼、埠連線SFTP伺服器,埠預設為22。