查看SSH版本
確保openssh版本大于4.8p1蕾管。
ssh -V
創(chuàng)建用戶登入目錄
mkdir -p /opt/file/sftpuser
創(chuàng)建SFTP用戶組
groupadd sftp
創(chuàng)建SFTP用戶
# -g 指定用戶所屬群組
# -d 指定用戶登入目錄
# -s 禁止用戶登入系統(tǒng)
# -M 不建立登入目錄
useradd -g sftp -d /opt/file/sftpuser -s /sbin/nologin -M sftpuser
設(shè)置用戶密碼
passwd sftpuser
echo "userpass" | passwd --stdin sftpuser
修改SSH配置文件
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
# 限制用戶認(rèn)證時(shí)限
LoginGraceTime 2m
# 是否連接前權(quán)限檢查
StrictModes yes
# 最大認(rèn)證次數(shù)
MaxAuthTries 6
# 最大保持連接
MaxSessions 10
# 最大保持未認(rèn)證連接
MaxStartups 10:30:100
# Subsystem sftp /usr/libexec/openssh/sftp-server
# 外部子系統(tǒng)
Subsystem sftp internal-sftp
# 條件塊
Match Group sftp
# 是否進(jìn)行X11轉(zhuǎn)發(fā)
X11Forwarding no
# 是否允許TCP轉(zhuǎn)發(fā)
AllowTcpForwarding no
# 指定Chroot認(rèn)證路徑
ChrootDirectory %h
# 強(qiáng)制執(zhí)行指定命令
ForceCommand internal-sftp
重啟SSH服務(wù)
systemctl restart sshd
設(shè)置目錄權(quán)限
chown root:sftp /opt/file
chmod 750 /opt/file
chown root:sftp /opt/file/sftpuser
chmod 750 /opt/file/sftpuser
其它
若系統(tǒng)做過(guò)加固运敢,可能需對(duì)如下文件解保護(hù)。
chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
若登入目錄存在子目錄,權(quán)限將如下設(shè)置岗憋。
chown sftpuser:sftp /opt/file/sftpuser/upload
chmod 500 /opt/file/sftpuser/upload
注意
ChrootDirectory目錄所有者必須為root用戶绪颖,且只有其具備w權(quán)限。