Liunx配置sftp

Liunx配置sftp

前言

SFTP(SSH File Transfer Protocol,也称 Secret File Transfer Protocol)

是一种安全的文件传输协议,一种通过网络传输文件的安全方法;

它确保使用私有和安全的数据流来安全地传输数据。

SFTP传输文件的过程,如下图:

在这里插入图片描述

SFTP是基于默认的22端口,是ssh内含的协议,只要启动了sshd就可以使用。sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务

本次使用liunx自带的internal-sftp

1、创建用户并设置密码

#创建用户
useradd -s /bin/false sftpuser
#设置密码
passwd sftpuser

2、修改/etc/ssh/sshd_config配置文件

#注释掉下面这行
#Subsystem sftp /usr/libexec/openssh/sftp-server

同时添加以下内容:

Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match user sftpuser #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /data/sftp #设定属于用户组sftp的用户访问的根文件夹如设置 /data/sftp 作为sftpuser 的sftp根目录
ForceCommand internal-sftp #指定sftp命令,强制执行内部sftp,并忽略任何 ~/.ssh/rc文件中的命令
X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加 上,否则删掉
AllowTcpForwarding no

3、关闭selinux

修改/etc/sysconfig/selinux配置文件

将文件中的SELINUX=enforcing 
修改为   SELINUX=disabled
#然后执行以下命令
setenforce 0 (// 0是关闭,1是开启 )

4、重启sshdfuwu

systemctl restart sshd 或 systemctl restart sshd.service #重启sshd

systemctl status sshd.service #查询sshd启动状态

5、权限赋予

修改sftp-users用户组用户目录权限
因为使用了ChrootDirectory /data/sftp 作为sftpuser的sftp根目录,现在来修改权限
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755
由于/data/sftpuser 是root创建的,权限755,如果sftpuser直接sftp过去是没有权限写入,因此,需要/data/sftp下创建新目录并给与qhlh权限

1.创建文件夹:
mkdir /data/sftp/wlb

2.权限赋予
chown sftpuser:sftpuser /data/sftp/wlb 将目录给用户
chmod 755 /data/sftp/wlb #权限也只能是755,否则无法限制目录

6、测试验证

使用filezilla客户端连接到sftp服务器

使用filezilla客户端连接到sftp服务器上传一份文件验证:

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中设置SFTP,可以通过以下步骤进行操作: 1. 确保已经安装了OpenSSH服务器。可以使用以下命令检查是否已安装: ``` sudo apt-get install openssh-server ``` 2. 打开SSH配置文件`/etc/ssh/sshd_config`,并确保以下配置项已启用或添加: ``` Subsystem sftp internal-sftp Match user sftpuser ChrootDirectory /data/sftp ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no ``` 这些配置项的含义如下: - `Subsystem sftp internal-sftp`:指定使用系统自带的internal-sftp作为SFTP服务。 - `Match user sftpuser`:匹配用户,可以根据需要添加多个用户或组。 - `ChrootDirectory /data/sftp`:设置用户的SFTP根目录为`/data/sftp`,确保用户只能在自己的目录下活动。 - `ForceCommand internal-sftp`:强制执行内部SFTP命令,并忽略任何`~/.ssh/rc`文件中的命令。 - `X11Forwarding no`:禁止用户使用X11转发。 - `AllowTcpForwarding no`:禁止用户使用端口转发。 3. 保存并关闭配置文件。 4. 重启SSH服务以使配置生效: ``` sudo service ssh restart ``` 5. 确保用户的SFTP根目录已创建,并设置正确的权限: ``` sudo mkdir /data/sftp sudo chown root:root /data/sftp sudo chmod 755 /data/sftp ``` 这将创建一个名为`/data/sftp`的目录,并将其所有权设置为root用户。 6. 创建SFTP用户并设置密码: ``` sudo adduser sftpuser sudo passwd sftpuser ``` 这将创建一个名为`sftpuser`的用户,并设置密码。 现在,您已经成功设置了SFTP服务,并限制了用户只能在其指定的目录下进行操作。用户可以使用SFTP客户端连接到服务器,并通过SFTP协议进行文件传输。 #### 引用[.reference_title] - *1* *2* [Linux服务器下搭建SFTP服务](https://blog.csdn.net/huanglm_OneWholeLife/article/details/124636003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [linux配置sftp及权限设置](https://blog.csdn.net/weixin_36108913/article/details/116608101)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值