Linux之搭建sftp
阿新 • • 發佈:2020-09-11
轉載: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。