sftp详细配置

介绍

SFTP(SSH File Transfer Protocol)即 SSH 文件传输协议。它是一种基于 SSH(Secure Shell)协议的安全文件传输协议,用于在网络中的不同主机之间安全地传输文件。SSH 协议提供了加密和身份验证功能,SFTP 利用这些功能来确保文件传输过程中的数据安全。

详细配置步骤

1、创建sftp用户

创建一个sftptest的测试用户,并设置密码

2、定义并创建sftp的数据接受目录

假设sftp接受文件的根目录是:/data/sftp/sftptest/,接受文件的目录是/data/sftp/sftptest/sftprecive

注意:/data/sftp/sftptest/的根目录的所属用户和所属组设置成root:root,接受文件的目录设置成sftptest:sftptest,不然会无法上传文件;

3、修改配置文件

vi /etc/ssh/sshd_config

添加下面配置:

PermitRootLogin yes
Subsystem sftp internal-sftp
  Match User sftptest 
  ChrootDirectory /data/sftp/sftptest/ 
  ForceCommand    internal-sftp
  AllowTcpForwarding no
  X11Forwarding no

注意事项:

> ChrootDirectory 绑定的目录的权限都是root:root,需要接收的文件的所属所组设置成sftptest:sftptest

> 如果需要修改修改sftp的默认端口:vi /etc/ssh/sshd_config

Port 2222

注意:修改sftp的默认端口也会修改ssh的连接端口

4、重启sshd

systemctl restart sshd

5、测试上传文件

上传文件成功,sftp配置完成

> 如果修改了默认端口,使用命令 sftp -P 2222 sftptest@192.168.216.105 进行连接

配置项详细解析

Subsystem sftp

定义 SFTP 子系统的启动命令。默认情况下,它可能是Subsystem sftp /usr/lib/ssh/sftp - server,这是调用外部的 SFTP 服务器程序来处理 SFTP 请求。如果要使用内部的 SFTP 子系统并限制用户目录(Chroot Jail),可以修改为Subsystem sftp internal-sftp -d <用户起始目录>

Match User

这个配置块允许针对特定用户进行配置。例如,Match User sftpuser表示下面的配置项将仅应用于sftpuser这个用户。

ChrootDirectory

设置用户的根目录(Chroot Jail)。例如,ChrootDirectory /home/sftpuser会将用户sftpuser限制在/home/sftpuser目录及其子目录中进行操作。需要注意的是,这个目录的所有者应该是root,并且权限应该是严格限制的(如755),以防止安全漏洞。

ForceCommand

强制用户执行特定的命令。例如,ForceCommand internal-sftp会强制用户使用内部 SFTP 子系统进行文件传输,而不能执行其他可能有安全风险的命令,如bash或其他 shell 命令。

AllowTCPForwarding

用于控制是否允许用户通过 SSH 隧道进行 TCP 转发。设置为no,如AllowTCPForwarding no,会禁止用户进行 TCP 转发。TCP 转发可能会被恶意利用来绕过安全限制。

X11Forwarding

X11Forwarding配置项用于控制是否允许将服务器端的 X11 图形应用程序的显示内容转发到本地客户端。它使得用户能够在本地机器上查看和操作远程服务器上运行的 X11 应用程序,同时利用 SSH 的安全机制来保障数据传输的安全性。

QA

This service allows sftp connections only

ssh登录账户跟sftp账户是同一个账户,ssh登录报错

解决方案:

vi /etc/ssh/sshd_config

注释掉sftp的其他配置,使用默认的配置,并限制sftp的默认目录,这个可以避免sftp登录后遍历一些敏感目录(比如:/etc/passwd)

测试:

sftp sftptest@192.168.216.105

ssh sftptest@192.168.216.105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值