Ubuntu上安装与配置SFTP

目录

一、预装软件

二、创建sftp管理组

三、SSH设置

三、创建用户家目录和设置home权限

四、创建用户并设置上传目录权限控制

五、用户初始化密码

六、说明


需求客户要求与第三方通过sftp交互文件,需要在Linux系统部署sftp服务器。考虑安全,计划对提供给第三方的用户实现chroot控制提供sftp本次选用的是系统自带的internal-sftp。限制用户只能在home目录下活动,需要使用chroot。openssl4.8p1以后都支持chroot。

一、预装软件

系统需要先安装openssh

通过下面命令可以查看安装情况

dpkg -l | grep openssh-server
二、创建sftp管理组

为SFTP访问创建用户组,便于管理权限,sftp用户都属于此组以便统一管理。

groupadd sftpusers
三、SSH设置

编辑sshd配置文件

vim /etc/ssh/sshd_config

 # 找到如下行,并注释掉
 Subsystem sftp	/usr/libexec/openssh/sftp-server

 # 使用内置的sftp ,主要配合chroot的功能
 Subsystem sftp internal-sftp 

 # 添加如下几行,表示sftpusers组的用户使用内置sftp ,并且用chroot功能 root设置为用户home目录
 Match Group sftpusers
 ChrootDirectory %h  
 ForceCommand    internal-sftp  

 #以下两个参数建议修改成no,否则用户登录会比较慢
 useDNS 设成no
 GSSAPIAuthentication 设成no

保存后,重启sshd服务

 service sshd restart

三、创建用户家目录和设置home权限

创建用户家目录及上传文件夹

mkdir -p /sFTP/share/testa/upload

配置用户home目录权限,用于chroot控制

chown root:root /sFTP/share/testa/
chmod 755 /sFTP/share/testa/
四、创建用户并设置上传目录权限控制


 如果用户名必须是数字开头,先执行

export SHADOW_ALLOW_ALL_NUMERIC_USER=1

创建新用户

useradd -g sftpusers -d /sFTP/share/testa  -s /sbin/nologin testa

-d 指定home目录

-g 用户DF999999主属组为sftpusers。若此处为-G,则会自动创建DF999999组为用户的主属组
-s /bin/false 关闭其Shell访问

上传目录权限控制

(我这里设置的upload文件夹,用于sftp账号上传文件,upload上一层是没有权限的)

chown testa:sftpusers /sFTP/share/testa/upload
chmod 775 /sFTP/share/testa/upload

 至此,用户可以sftp登录,并上传文件到send目录下。

五、用户初始化密码

passwd testa

六、说明

到此为止,已经在Ubuntu上成功安装并配置了SFTP服务器,并为SFTP用户设置了根目录。SFTP用户将被限制在其根目录中,并且无法访问系统上的其他目录,SFTP账号不能使用shell remote仅限SFTP使用。

你可能感兴趣的:(Ubuntu,Linux,ubuntu,linux,运维)