CentOS7 配置 SFTP 与添加用户

Linux ⋅ tytrock ⋅ at 2019-12-12 17:10:40 ⋅ 4754 Reads

创建用户组

groupadd mygroup


创建用户并加入组

useradd -G mygroup -s /sbin/nologin myuser

-s 禁止用户 ssh 登陆
-G 加入 sftp 用户组


设置用户密码

passwd myuser


建立用户目录

cd /usr
sudo mkdir myhome
cd myhome
sudo mkdir myuser


修改ssh文件配置

vim /etc/ssh/sshd_config

找到如下这行,并注释掉

#Subsystem      sftp    /usr/libexec/openssh/sftp-server


添加如下几行

Subsystem sftp internal-sftp  
Match Group mygroup
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /usr/myhome
ForceCommand internal-sftp

保存,退出,重启ssh

systemctl restart sshd.service


设置权限

chown root:root /usr/myhome
chgrp -R mygroup /usr/myhome
chmod -R 755 /usr/myhome
chown -R myuser:mygroup /usr/myhome/myuser
chmod -R 755 /usr/myhome

测试登录

sftp myuser@localhost


问题汇总

1、登录时报错如下:

Connection to 127.0.0.1 closed by remote host.
Couldn't read packet: Connection reset by peer

解决方法:

目录权限设置上要遵循2点:

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。

如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

chown root:root /usr/myhome
chmod 755 /usr/myhome




参考:

https://learnku.com/articles/22673

https://www.92ez.com/?action=show&id=23452


Total Reply Count: 0
    No comments~~
    • publish_typography
    • publish_markdown
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • publish_image
    • publish_draft
    Ctrl+Enter