2020年1月31日 星期五

ubuntu 19.10 建立 Sftp Server 設定

記錄如何在 Ubuntu Linux 上建立一個 SFTP Server,需滿足以下幾點條件:

使用者不可經由 SSH 登入
使用者可經由 SFTP 登入
使用者只可在指定目錄活動
使用者可上傳下載指定目錄內的檔案

環境
Ubuntu 19.10
以下操作皆默認 root 操作,如果你不是使用 root 操作,請在前面加上 sudo。

ubuntu 19.10本身就內建了 Sftp Server,所以只要做一些設定即可。
sftp 群組:sftp-users
sftp 使用者:sftp_user_XXX

新增 SFTP 群組
addgroup sftp-users
確認 group 有正確被建立
grep 'sftp-users' /etc/group

建立 SFTP 使用者
useradd -g sftp-users -s /sbin/nologin sftp_user_XXX
-g: 預設 group
-s: 預設 shell, nologin shell 一般用於系統帳號, 表示不可經由 ssh 登入
確認使用者有正確被建立
grep sftp_user_XXX /etc/passwd
如果使用者早已建立, 可直接更改使用者設定即可
usermod -g sftp-users -d /upload -s /sbin/nologin sftp_user_XXX
建立使用者的目錄
install -d -o sftp_user_XXX -g sftp-users /home/sftp_user_XXX/www
變更使用者的密碼
passwd sftp_user_XXX

SSH 設定
nano /etc/ssh/sshd_config

註解並新增
#Subsystem sftp /usr/lib/openssh/sftp-server 《==加#
Subsystem sftp internal-sftp

PasswordAuthentication yes
PermitRootLogin no
Match Group sftp-users
 ChrootDirectory /home/%u
 X11Forwarding no
 AllowTcpForwarding no
 PermitTTY no
 ForceCommand internal-sftp

重新啟動 sss 服務
systemctl restart ssh

PS:如有建立 web 目錄,記得要變更 user 目錄底下的權限
chown -R sftp_user_XXX:sftp-users www
chmod -R 755 www

沒有留言:

張貼留言