iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >如何在 Linux 服务器上安装和使用 SFTP?
  • 377
分享到

如何在 Linux 服务器上安装和使用 SFTP?

ssh服务器linux 2023-10-02 11:10:18 377人浏览 安东尼
摘要

SFTP 或 ssh 文件传输协议是一种在两台计算机之间安全传输数据的方法。它是运行在 SSH 协议之上并利用其安全性并完全支持其身份验证的 FTP。 现在,建议使用 SFTP 而不是旧的旧 FTP 或 FTP/S 协议。SFTP 默认

SFTP 或 ssh 文件传输协议是一种在两台计算机之间安全传输数据的方法。它是运行在 SSH 协议之上并利用其安全性并完全支持其身份验证的 FTP。

现在,建议使用 SFTP 而不是旧的旧 FTP 或 FTP/S 协议。SFTP 默认是安全的,因为这就是 SSH 的工作方式。从安全的角度来看,SFTP 还可以保护您免受密码嗅探和中间人攻击 (MiTM)。

与 SSH 一样,SFTP 也使用加密和加密哈希函数保护您的数据完整性。此外,它还支持多种安全身份验证方法,包括密码和基于密钥的身份验证。此外,它减少了服务器对外部网络的开放端口,因为它与 SSH 协议在同一端口上运行。

先决条件

在本指南中,您将学习如何在 linux 系统上设置 SFTP 服务器。此外,您还将学习 sftp 客户端的基本命令。

以下是当前的实施环境:

  • Linux 服务器 - 您可以使用 Debian、ubuntuCentos、Fedora、Rocky 或任何其他 Linux 发行版。
  • 确保 OpenSSH 软件包在您的 Linux 系统上可用。
  • SFTP 客户端 - sftp 命令行或您喜欢的任何 GUI 客户端。

验证 OpenSSH 包

要设置 SFTP 服务器,您必须在 Linux 系统上安装 OpenSSH 软件包。几乎所有 Linux 分发服务器都默认安装了 OpenSSH 软件包。但是,如果您的系统上没有 OpenSSH 软件包,您可以从官方存储库安装它。

  1. 要确保在您的 Linux 系统上安装了 OpenSSH 软件包,请使用以下命令。

对于 Debian 或 Ubuntu 服务器,您可以使用下面的 dpkg 命令。

dpkg -l | grep ssh

下面是我们 Debian 系统的输出。

ii  libssh2-1:amd64               1.9.0-2                        amd64        SSH2 client-side libraryii  openssh-client                1:8.4p1-5                      amd64        secure shell (SSH) client, for secure access to remote Machinesii  openssh-server                1:8.4p1-5                      amd64        secure shell (SSH) server, for secure access from remote machinesii  openssh-sftp-server           1:8.4p1-5                      amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines

第一列“ ii ”表示已安装软件包。软件包“ openssh-sftp-server ”安装在 Debian/Ubuntu 系统上。

对于 RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux 用户,您可以使用如下 rpm 命令。

rpm -qa | grep ssh

创建组和用户

在这一步,您将为 SFTP 服务器创建一个新组和用户。该组内的用户将被允许访问 SFTP 服务器。并且出于安全原因,SFTP 用户无法访问 SSH 服务。SFTP 用户只能访问 SFTP 服务器。

  1. 执行以下命令创建一个新组' sftpgroup '。
sudo groupadd sftpgroup

使用以下命令 创建一个新用户“ sftpuser ”。

sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser

详细选项:

  • -G : 自动将用户添加到' sftpgroup '。
  • -d:指定新用户的主目录。
  • -s : 将新用户的默认设置为' /sbin/nologin ',这意味着该用户无法访问 SSH 服务器。
  1. 接下来,使用以下命令 为用户“ sftpuser ”创建密码。
passwd sftpuser

输入您的强密码并重复,然后按“ Enter ”确认。

要添加更多用户,请重复第2 和第 3 阶段,最重要的是,所有 SFTP 用户必须在组 ' sftpgroup ' 中,并且不能通过 SSH 访问 shell。

设置 Chroot 监狱目录

创建新组和用户后,您必须为 SFTP 用户创建和配置 chroot 目录。

  1. 对于用户'sftpuser',新的主目录将位于'/srv/sftpuser'。执行下面的命令来创建它。
mkdir -p /srv/sftpuser
  1. 要为用户' sftpuser '设置chroot ,您必须将目录的所有权更改为用户root,但保持组可以读取和执行而没有写入权限。

使用以下命令将目录的所有权更改为用户“root”。

sudo chown root /srv/sftpuser

授予组读取和执行权限,但不能写入。

sudo chmod g+rx /srv/sftpuser
  1. 接下来,在“ /srv/sftpuser ”目录中创建一个新的“data”目录,并将该“ data ”目录的所有权更改为用户“ sftpuser ”。
mkdir -p /srv/sftpuser/data chown sftpuser:sftpuser /srv/sftpuser/data

到目前为止,下面详细介绍了 SFTP 用户目录的配置。

  • 目录“ /srv/sftuser”是默认的主目录。
  • 用户 ' sftpuser '不能写入目录 ' /srv/sftpuser ',但可以读取该目录中的内容。
  • 用户' sftpuser '可以将文件上传到目录' /srv/sftpuser/data '的SFTP服务器。

在 SSH 服务器上启用 SFTP

要在 OpenSSH 上启用 SFTP 服务器,您必须编辑 SSH 配置“/etc/ssh/sshd_config”。

使用 nano 或 vim 编辑 ssh 配置“ /etc/ssh/sshd_config ”。

sudo nano /etc/ssh/sshd_config

注释以下配置以禁用独立的“ sftp-server ”功能。

#Subsystem      sftp    /usr/lib/openssh/sftp-server
  1. 将以下配置粘贴到该行的底部。
Subsystem sftp internal-sftpMatch Group sftpgroup     ChrootDirectory %h     X11Forwarding no     AllowtcpForwarding no     ForceCommand internal-sftp

保存配置并退出。

详细配置:

  • 我们不使用子进程“ sftp-server ”,而是使用“ internal-sftp ”。
  • 为组“ sftpgroup ”启用了 SFTP 服务器。
  1. 要应用新配置,请使用以下命令重新启动 ssh 服务。
sudo systemctl restart sshd

SFTP 服务器已准备就绪并可访问,它与 SSH 服务在同一端口上运行。

访问 SFTP 服务器

在客户端,我们将使用默认安装在大多数 Linux 发行版上的 sftp 命令行。但是,您也可以使用其他命令行客户端或 GUI FTP 客户端,例如FileZilla、Cyber​​duck等。

  1. 要连接到 SFTP 服务器,请执行 sftp 命令,如下所示。
sftp ftpuser@SERVER-IP

如果您的 SFTP 和/或 SSH 服务器在自定义端口上运行,您可以使用 sftp 命令,如下所示。

sftp -P PORT ftpuser@SERVER-IP

键入“ sftpuser ”的密码。

  1. 连接到 SFTP 服务器后,执行以下命令。

显示当前路径工作目录并列出所有可用的文件和目录。

pwdls

  1. 将本地文件上传到SFTP服务器的'/ '目录,会出现' permission denied ',因为是chroot目录。
put /path/to/file/on/local /
  1. 将本地文件上传到SFTP 服务器上的目录“ /data/ ”。如果您的配置正确,您的文件将被上传到“ /data/ ”目录。
put /path/to/file1/on/local1 /data/put /path/to/file2/on/local /data/

  1. 现在使用以下命令 检查“ /data ”目录中的可用文件。
ls /data/

您将看到您的文件上传到 SFTP 服务器。

结论

恭喜!您已成功在 Linux 系统上配置 SFTP 服务器。这种类型的配置可以应用在大多数安装了 OpenSSH 的 Linux 系统上。此外,您还学习了如何为 SFTP 用户设置 chroot 目录并学习了基本的 sftp 客户端命令。

来源地址:https://blog.csdn.net/qq_41819851/article/details/131407277

--结束END--

本文标题: 如何在 Linux 服务器上安装和使用 SFTP?

本文链接: https://www.lsjlt.com/news/422621.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在 Linux 服务器上安装和使用 SFTP?
    SFTP 或 SSH 文件传输协议是一种在两台计算机之间安全传输数据的方法。它是运行在 SSH 协议之上并利用其安全性并完全支持其身份验证的 FTP。 现在,建议使用 SFTP 而不是旧的旧 FTP 或 FTP/S 协议。SFTP 默认...
    99+
    2023-10-02
    ssh 服务器 linux
  • 如何在 Linux 上安装和使用 npm?
    npm(Node.js Package Manager)是一个用于安装、管理和分享 Node.js 应用程序的工具。它是一个开源的软件包管理器,可以让开发者轻松地管理和分享他们的 Node.js 模块。 本文将介绍如何在 Linux 上安...
    99+
    2023-06-21
    npm javascript linux
  • 如何在Linux上安装和使用NumPy?
    在Linux系统上,NumPy是一种广泛使用的Python库,它提供了一些强大的功能,包括数学计算、数组操作和线性代数等方面的支持。在本篇文章中,我们将详细介绍如何在Linux系统上安装和使用NumPy。 安装NumPy 在Linux系统上...
    99+
    2023-07-23
    linux numy 索引
  • 如何在Linux上安装和使用Etcher
    这篇文章主要讲解了“如何在Linux上安装和使用Etcher”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Linux上安装和使用Etcher”吧!Etcher 是一款流行的 USB 烧...
    99+
    2023-06-15
  • linux怎么安装sftp服务器
    linux怎么安装sftp服务器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。sftp采用的是ssh加密隧道 ,是一数据流连接,提供文件访问、传输和管理功能的网...
    99+
    2023-06-28
  • 如何在阿里云服务器上安装和使用Linux操作系统
    阿里云服务器是一种基于云计算技术的虚拟服务器,提供了灵活、安全、稳定的计算资源。在使用阿里云服务器时,用户需要选择适合自己的操作系统,并安装所需的应用程序。本文将介绍如何在阿里云服务器上安装和使用Linux操作系统,并通过具体的示例来演示...
    99+
    2023-12-31
    阿里 器上 操作系统
  • 如何在Linux上使用Python安装和管理npm?
    在Linux系统上,安装和管理npm(Node.js包管理器)是非常重要的。而Python是一种非常流行的编程语言,也可以用来在Linux系统上管理npm。下面,我们就来讲一下如何在Linux系统上使用Python来安装和管理npm。 一、...
    99+
    2023-08-25
    npm 数据类型 linux
  • 怎么在Linux上安装使用FTP服务器
    本篇内容主要讲解“怎么在Linux上安装使用FTP服务器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux上安装使用FTP服务器”吧!Linux VPS用户一般都通过SFTP/SCP...
    99+
    2023-06-12
  • 怎么在Linux服务器上安装使用Memcache
    这篇文章主要介绍“怎么在Linux服务器上安装使用Memcache”,在日常操作中,相信很多人在怎么在Linux服务器上安装使用Memcache问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Linux服...
    99+
    2023-06-12
  • 如何在 Linux 上使用 NPM 安装 Go?
    在 Linux 上使用 NPM 安装 Go Go 是一种高效、可靠、简单的编程语言,由 Google 在 2009 年推出。Go 语言具有强大的并发特性和高效的内存管理,因此在开发云服务、网络应用、分布式系统等方面得到了广泛应用。本文将介绍...
    99+
    2023-09-08
    http npm linux
  • Windows和Linux上如何安装使用gitee
    这篇文章主要介绍了Windows和Linux上如何安装使用gitee的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Windows和Linux上如何安装使用gitee文章都会有所收获,下面我们一起来看看吧。第一部...
    99+
    2023-07-05
  • 如何在Linux上安装PHP和Apache?
    Linux 是一个流行的操作系统,它被广泛用于 Web 服务器和开发环境中。在 Linux 上安装 PHP 和 Apache 是非常常见的任务,因为这两个工具是构建 Web 应用程序的基础。在本文中,我们将讨论如何在 Linux 上安装 P...
    99+
    2023-06-30
    apache 文件 linux
  • 从PHP到Laravel:如何在Linux上安装和使用NPM?
    随着Web应用程序的不断发展,越来越多的开发人员开始使用JavaScript来为前端编写代码。NPM是JavaScript的包管理器,它可以让您轻松地安装和管理JavaScript的依赖项。在本文中,我们将介绍如何在Linux系统上安装和...
    99+
    2023-10-13
    linux npm laravel
  • linux如何在家中使用SSH和SFTP协议
    这篇文章给大家分享的是有关linux如何在家中使用SSH和SFTP协议的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。几年前,我决...
    99+
    2023-06-16
  • 如何在CentOS上安装和使用Git
    概述Git是一款分布式版本控制工具,被广泛应用于软件开发过程中。CentOS是一种流行的Linux操作系统。本文将介绍如何在CentOS上安装和使用Git。步骤一:安装Git在CentOS上安装Git非常容易。只需打开终端,键入以下命令:s...
    99+
    2023-10-22
  • 如何在Linux上安装使用mpack命令
    这篇文章将为大家详细讲解有关如何在Linux上安装使用mpack命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何在 Linux 上安装 mpack 命令mpack ...
    99+
    2024-04-02
  • 怎么在Linux上安装和使用Docker
    这篇文章主要讲解了“怎么在Linux上安装和使用Docker”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux上安装和使用Docker”吧!安装由于 Ubuntu Server ...
    99+
    2023-06-16
  • 如何在Linux上安装和配置Chrony
    这篇文章主要讲解了“如何在Linux上安装和配置Chrony”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Linux上安装和配置Chrony”吧!Chrony 客户端Chrony 是 ...
    99+
    2023-06-16
  • 如何在linux中安装和使用ZFS
    这篇文章给大家分享的是有关如何在linux中安装和使用ZFS的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic F...
    99+
    2023-06-27
  • 如何在linux中安装和使用Inxi
    这篇文章主要为大家展示了“如何在linux中安装和使用Inxi”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何在linux中安装和使用Inxi”这篇文章吧。Inxi是一个免费的,开源的,功能齐...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作