如何在 CentOS/RHEL 8 上创建没有 Shell 访问权限的 SFTP 用户

2023-11-03

SFTP(SSH 文件传输协议)是两个系统之间的安全文件传输协议。它通过 SSH 协议运行并共享相同的端口 22。本教程将帮助您在 CentOS 8 和 RedHat 8 系统上创建仅 SFTP 访问用户(无 ssh 访问权限)。用户只能通过SFTP连接服务器并允许访问指定目录。用户无法通过 SSH 访问服务器。按照以下教程在 CentOS 8 和 RHEL 8 上创建仅限 sftp 的帐户。

第 1 步 – 创建帐户

首先,创建一个用于 sftp 访问的用户帐户。在本教程中,我们将创建一个名为sftpuser没有 shell 访问权限。另外,为用户设置一个强密码。


sudo adduser --shell /bin/false sftpuser
sudo passwd sftpuser
  

Changing password for user sftpuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
  

第 2 步 – 创建目录

现在,创建 sftp 用户可以访问的目录结构。我们将限制新用户只能访问此目录。所以用户无法访问其他目录的文件。


sudo mkdir -p /var/sftp/files
  

将目录的所有权更改为新创建的 sftp 用户。这样 sftpuser 就可以对该目录进行读写。


sudo chown sftpuser:sftpuser /var/sftp/files
  

您必须将 /var/sftp 的所有者和组所有者设置为 root。 root 用户对此访问具有读/写访问权限。组成员和其他帐户只有读取和执行权限。


sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
  

步骤 3 – 为 SFTP 配置 SSH

我们知道SFTP运行在SSH协议之上,所以我们需要在配置文件中进行配置。在文本编辑器中编辑 SSH 配置文件。


sudo vim /etc/ssh/sshd_config
  

并在文件末尾添加以下设置。


Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no
  

保存配置并重新启动 SSH 服务以应用更改。


sudo systemctl restart sshd.service
  

全部完成后,您的系统已准备好接受所创建帐户的仅 sftp 连接。让我们测试 sftp 连接,并确保用户无权使用 SSH。

第 4 步 – 测试 SFTP 连接

我使用 FileZilla 从 Windows 系统连接到 SFTP 实例。 Linux 桌面用户还可以使用 Filezilla 进行连接。

对于 Linux 服务器,用户可以使用 sftp 命令行实用程序连接到远程 sftp 实例。


sftp sftpuser@sftp.tecadmin.net
  

Connecting to sftp.tecadmin.net...
sftpuser@sftp.tecadmin.net's password:
sftp>
  

连接 FileZilla:

该帐户配置为仅 SFTP 连接。因此,如果任何用户尝试通过 SSH 连接,身份验证成功后将立即断开连接。用户将收到以下消息:


ssh sftpuser@sftp.tecadmin.net
  

sftpuser@sftp.tecadmin.net's password:
This service allows sftp connections only.
Connection to sftp.tecadmin.net closed.
  

上述消息(此服务仅允许 sftp 连接。)显示用户仅具有 sftp 访问权限。用户无法通过 SSH 连接服务器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS/RHEL 8 上创建没有 Shell 访问权限的 SFTP 用户 的相关文章

随机推荐

  • ORA-01075,ORA-09925 Read-only file system问题一例

    OEL 5 7 ORACLE RAC 11 2 0 2 在运行过程中系统监控台出现journal commit I O error的信息 SQL gt oradebug Message from syslogd at Fri Oct 14
  • java 远程接口_java中如何正确的使用远程接口

    服务器必须包含一个扩展了UnicastRemoteObject的类 并实现远程接口 这个类也可以含有附加的方法 但客户只能使用远程接口中的方法 这是显然的 因为客户得到的只是指向接口的一个句柄 而非实现它的那个类 必须为远程对象明确定义构建
  • JVM 内存模型

    内存划分 java虚拟机按照运行时内存使用区域划分如图 区域 是否线程共享 是否会内存溢出 程序计数器 否 不会 java虚拟机栈 否 会 本地方法栈 否 会 堆 是 会 方法区 是 会 一 程序计数器 Program Counter Re
  • Qt中的 connect 函数

    1 connect 函数实现的是信号与槽的关联 注意 只有QO bject类及其派生的类才能使用信号和槽的机制 2 函数原型 static QMetaObject Connection connect const QObject sende
  • Qt中信号槽的连接方式

    Qt AutoConnection 如果信号发送者和接收者在同一线程 Qt DirectConnection被使用 否则Qt QueuedConnection被使用 Qt DirectConnection 信号发送 信号槽立刻执行 Qt Q
  • scheduler Unhealthy Get “http://127.0.0.1:10251/healthz“: dial tcp 127.0.0.1:10251: con

    解决方法 cd etc kubernetes manifest 然后将你的scheduler以及controll manager yaml中把port 0注释掉 containers command kube scheduler authe
  • gitlab如何创建用户并登录

    为了大家后期能方便创建用户和使用gitlab 先给大家设置为中文 设置为中文后保存然后刷新页面即可设置为中文 接下来教大家怎么创建git用户并进行登录 创建完用户后需要配置一次密码 配置完密码后退出用户测试进行新用户登录 这里用刚创建的新用
  • SpringBoot项目jar、war包启动解析

    一 jar包和war包的区别 1 1 war包 war包是Java Web应用程序的一种打包方式符合Servlet标准 它是Web Archive的缩写 主要用于存储Web应用程序相关的文件 包括Java类文件 JSP HTML CSS J
  • 动手实现Linux内核编译与安装

    Linux内核是一个用C语言写成的 符合POSIX标准的类Unix操作系统 内核是操作系统中最基本的一部分 提供了众多应用程序访问计算机硬件的机制 Linux内核的一大特点就是采用了整体式结构 有很多过程组成 每个过程都可以独立编译 其模块
  • C++ 好用的包管理工具--vcpkg

    背景 Windows 下开发 C C 程序 少不了编译开源的第三方库 使用这些库开发极大的方便了程序员 使得我们不必重复造轮子 由于开源库绝大部分都来源于 Linux 系统 将其移植到 Windows 的 VC 开发环境下编译比较复杂和麻烦
  • vite运行项目报错events.js:352 throw er; // Unhandled ‘error‘ event

    解决方法 运行命令 node node modules esbuild install js 启动项目 npm run dev
  • 图-文多模态,大模型,预训练

    参考老师的无敌课程 多模态任务是指需要同时处理两种或多种不同类型的数据 如图像 文本 音频等 的任务 例如 图像描述 image captioning 就是一种典型的多模态任务 它需要根据给定的图像生成相应的文本描述 多模态任务在人工智能领
  • 把url里的query参数转成对象格式

    const urlString http www xxx com name tom age 18 height 180 1 拿到 后的那部分 const queryString urlString split console log que
  • 详解10M/100M/1000M以太网接口物理层一致性测试

    以太网的起源与发展 1972年Metcalf与他在XeroxPARC的同事们 在研究如何将XeroxAltos工作站与其他XeroxAltos工作站 服务器以及激光打印机相互联网 他们成功地用一个网络实现了2 94Mb s的数据传输率的互联
  • Nginx 动静分离

    1 nginx 与 tomcat 处理静态资源区别 tomcat静态资源请求量为每秒1000次 则nginx静态资源请求量为每秒6000次 tomcat每秒的吞吐量为0 6M nginx的每秒吞吐量为3 6M 可以说 nginx处理静态资源
  • Python3 环境搭建介绍

    本章节我们将向大家介绍如何在本地搭建 Python3 开发环境 Python3 可应用于多平台包括 Windows Linux 和 Mac OS X Unix Solaris Linux FreeBSD AIX HP UX SunOS IR
  • 生成可执行程序四个步骤:预处理、编译、汇编、链接

    预处理 相当于根据预处理指令组装新的c c 程序 经过预处理 会产生一个没有头文件 都已经被展开了 宏定义 都已经替换了 没有条件编译指令 该屏蔽的都屏蔽掉了 没有特殊符号的输出文件 这个文件的含义同原本的文件无异 只是内容上有所不同 编译
  • 如何在 Apache 中启用或禁用 CGI 脚本

    通用网关接口 CGI 是一种标准协议 使 Web 服务器能够执行外部脚本并向 Web 客户端返回动态内容 Apache 是使用最广泛的 Web 服务器之一 它支持开箱即用的 CGI 脚本 在本文中 我们将解释如何在各种平台 包括 Ubunt
  • S3FS:在 Ubuntu 和 Debian 系统上安装 Amazon S3 存储桶

    Amazon S3 是一种高度可扩展且持久的对象存储服务 允许您从网络上的任何位置存储和检索任意数量的数据 S3FS 是 Amazon S3 的 FUSE 用户空间中的文件系统 接口 允许您将 Amazon S3 存储桶作为本地文件系统挂载
  • 如何在 CentOS/RHEL 8 上创建没有 Shell 访问权限的 SFTP 用户

    SFTP SSH 文件传输协议 是两个系统之间的安全文件传输协议 它通过 SSH 协议运行并共享相同的端口 22 本教程将帮助您在 CentOS 8 和 RedHat 8 系统上创建仅 SFTP 访问用户 无 ssh 访问权限 用户只能通过