此文章仅个人工作时对操作步骤进行记录,无任何安全、可行性保证,转载请标注出处!
#创建用户组
groupadd test1gp
groupadd test2gp
#创建用户配置用户组,并让其无法登录系统(保证安全,让其只能登录sftp)
useradd -g test1gp -M -s /sbin/nologin test1
useradd -g test2gp -M -s /sbin/nologin test2
#配置用户密码
passwd test1
passwd test2
#创建目录(此目录为用户根文件夹,无权限操作)
mkdir -p /data/sftp/test1
mkdir -p /data/sftp/test2
#配置此用户主目录为
usermod -d /data/sftp/test1 test1
usermod -d /data/sftp/test2 test2
#修改此目录所属组、所有人
chown root:test1gp /data/sftp/test1
chown root:test2gp /data/sftp/test2
#配置此目录权限
chmod 755 /data/sftp/test1
chmod 755 /data/sftp/test2
#创建目录(此目录为用户可使用文件夹)
mkdir -p /data/sftp/test1/test1item
mkdir -p /data/sftp/test2/test2item
#修改此目录所属组、所有人
chown -R test1:test1gp /data/sftp/test1/test1item
chown -R test2:test2gp /data/sftp/test2/test2item
#修改权限
chmod 755 /data/sftp/test1/test1item
chmod 755 /data/sftp/test2/test2item
#编辑sshd文件
vim /etc/ssh/sshd_config
#这里需使用上方用户的根目录
Subsystem sftp internal-sftp
Match Group test1gp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /data/sftp/test1
ForceCommand internal-sftp
Match Group test2gp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /data/sftp/test2
ForceCommand internal-sftp
#重启sshd服务,然后测试 sftp 用户名@ip地址
systemctl restart sshd.service
sftp sfsSftp@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:ofF6m5NpzBsR7ayX3Omdl8Xp9qXPRHV4141S6wohxY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
sfsSftp@127.0.0.1's password:
Connected to sfsSftp@127.0.0.1.
sftp>
下述为修改sftp端口
vim /etc/ssh/sshd_config
#修改端口为64022(可以是任意非占用端口)
#修改后保存确认退出
#并根据提示宣告此端口给selinux和防火墙
semanage port -a -t ssh_port_t -p tcp 64022
firewall-cmd --add-port=64022/tcp --per
systemctl restart sshd.service
测试连接成功