linux 安装sftp

前提安装sshd服务

1、创建一个新的用户组,用于管理SFTP用户。

groupadd useradd ftpuser

useradd -m -G ftpuser -s /bin/false ftpuser
passwd ftpuser# 为用户设置密码

-m选项表示创建用户的主目录,如果不存在则会自动创建。
-G ftpuser选项表示将新用户添加到ftpuser组中。
-s /bin/false选项表示指定用户的登录shell为/bin/false,这意味着该用户无法登录到系统。
最后,ftpuser是新创建的用户名。

2、创建ftp目录

mkdir /home/Net_share
chown root:ftpuser  /home/Net_share
chmod 755 /home/Net_share
mkdir /home/Net_share/File_save
chown ftpuser:ftpuser /home/Net_share/File_save
chmod 755 /home/Net_share/File_save
  • 首先建立Net_share目录,他的拥有者必须是root,并且其他用户不能拥有写入的权限(ChrootDirectory 这个选项要求的),即权限不能超过755(否则连不上);

  • 很明显,这样,我们使用SFTP用户登录就只能进行下载操作,无法上传文件;

  • 所以在Net_share目录下建一个用于上传和下载的目录,他的拥有者可以是SFTP用户,可以无限制操作该目录下的文件;

3、修改linux服务器的SFTP配置

编辑/etc/ssh/sshd_config文件,注释其中的Subsystem sftp /usr/libexec/openssh/sftp-server,然后新增配置如下:

# 我的SFTP配置
Subsystem sftp internal-sftp  # SFTP子系统使用内置的SFTP服务器
Match Group ftpuser             # 以下配置仅适用于属于该组的用户
ChrootDirectory /home/Net_share    # 目录限制
ForceCommand internal-sftp    # 强制用户使用内置的SFTP服务器进行会话,而不允许执行其他命令
AllowTcpForwarding no         # 禁止TCP转发
X11Forwarding no              # 禁止X11转发

4、检查配置是否正确

sshd -t

5、重启服务

重启SSH服务器:配置完成后,重新启动SSH服务器以使更改生效。

sudo service ssh restart  # 或 systemctl restart sshd

6、winscp连接测试

image

posted @ 2024-02-22 15:46  EJW  阅读(756)  评论(0编辑  收藏  举报