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

这篇具有很好参考价值的文章主要介绍了如何在 Linux 服务器上安装和使用 SFTP?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

先决条件

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

以下是当前的实施环境:

  • Linux 服务器 - 您可以使用 Debian、Ubuntu、CentOS、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 library
ii  openssh-client                1:8.4p1-5                      amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                1:8.4p1-5                      amd64        secure shell (SSH) server, for secure access from remote machines
ii  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

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

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

详细选项:

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

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

linux安装sftp,ssh,服务器,linux

要添加更多用户,请重复第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

linux安装sftp,ssh,服务器,linux

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

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

在 SSH 服务器上启用 SFTP

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

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

sudo nano /etc/ssh/sshd_config

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

#Subsystem      sftp    /usr/lib/openssh/sftp-server
  1. 将以下配置粘贴到该行的底部。
Subsystem sftp internal-sftp

Match 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 服务器后,执行以下命令。

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

pwd
ls

linux安装sftp,ssh,服务器,linux

  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/

linux安装sftp,ssh,服务器,linux

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

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

linux安装sftp,ssh,服务器,linux

结论

恭喜!您已成功在 Linux 系统上配置 SFTP 服务器。这种类型的配置可以应用在大多数安装了 OpenSSH 的 Linux 系统上。此外,您还学习了如何为 SFTP 用户设置 chroot 目录并学习了基本的 sftp 客户端命令。文章来源地址https://www.toymoban.com/news/detail-681339.html

到了这里,关于如何在 Linux 服务器上安装和使用 SFTP?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云服务器中Linux如何安装宝塔面板?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 官方使用手册:https://www.kancloud.cn/chudong/bt2017/424204 宝塔Linux面板是提升运维效率的服务器管理软件,目前使用免费的版本功能齐全,已经足够使用了。 [西瓜程序猿]使用阿里云服务器网以CentOS操作系统为例,安装宝塔

    2024年02月10日
    浏览(48)
  • 如何使用 Xshell 连接 Linux 服务器

    目录 🌳 搭建 Linux 环境 🌱 Linux 环境的搭建方式 ☘️ 购买云服务器 🌳 使用Xshell远程登陆到Linux服务器 🌱 下载安装Xshell ☘️ 查看Linux主机ip 🍀 使用Xshell登录主机 💧 方法1 💧 方法2 🌳额外补充 🍎 总结 Linux环境的搭配方式主要有以下三种: 1. 直接安装在物理机上. 但是

    2024年02月02日
    浏览(59)
  • 如何保护linux服务器远程使用的安全

    服务器安全是一个非常敏感的问题,因服务器远程入侵导致数据丢失的安全问题频频出现,一旦服务器入侵就会对个人和企业造成巨大的损失。因此,在日常使用服务器的时候,我们需要采取一些安全措施来保障服务器的安全性。 目前服务器系统使用到比较多的就是Linux,大

    2024年01月25日
    浏览(46)
  • Linux如何在Ubuntu系统服务器上安装 Jenkins?【详细教程】

    1. 更新 Ubuntu 软件包列表 ``` sudo apt-get update ``` 2. 安装 Java 运行环境 ``` sudo apt-get install openjdk-8-jdk ``` 3. 导入 Jenkins GPG 密钥 ``` wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - ``` 4. 添加 Jenkins 软件包仓库 ``` sudo sh -c \\\'echo deb https://pkg.jenkins.io/debian-stable binary/ /

    2023年04月09日
    浏览(60)
  • 小白教程-如何在Linux上安装运行MC(我的世界)服务器

    第1步:选择自己的目标Linux平台,什么平台都可以,我这里用的Centos7.9。安装过程相信大部分小伙伴都会的,如果不会的话,可以联系我QQ:28513349,我会详细指导,这里我用的是VM虚拟机安装的。 第2步:系统安装完毕后进入系统,打开终端: 更新一下(注意,如果执行命令

    2024年01月24日
    浏览(48)
  • Linux系统如何查看服务器带宽及网络使用情况

       操作系统: Linux    操作环境: Centos7   Linux系统中如何查看服务器带宽?本篇文章主要和大家分享一下Linux系统中查看服务器带宽的方法,有需要的朋友可以参考一下。 众多网络相关的命令可查看:【Linux】之【网络】相关的命令及解析[ethtool、nload、nethogs、iftop、

    2024年02月02日
    浏览(75)
  • Linux系统如何查看服务器带宽及网络使用情况?

    要查看Linux服务器的带宽和网络使用情况,可以使用以下命令和工具: ifconfig命令:ifconfig命令用于显示和配置网络接口信息,包括带宽和网络使用情况。 使用以下命令查看所有网络接口的信息: 该命令将显示每个网络接口的详细信息,包括接收和发送的数据包数量以及网络

    2024年02月16日
    浏览(55)
  • 如何使用宝塔面板搭建网站(Linux服务器配置篇)

    搭建网站我们需要: 必须是Linux服务器 (最低要求配置1核1G当然再低些也能运行但是不建议) 自己的域名(可以去阿里云或者腾讯云了解) PHP项目   此处展示的是华为云服务器 (各个服务器的购买和使用差别不大,这里提供参考) 登录之后点击控制台  点击右上角的搜索

    2024年02月07日
    浏览(73)
  • 如何在linux服务器上安装Anaconda与pytorch,以及pytorch卸载

    这里我们需要在官网上查找自己需要的版本,地址链接在下面: 这里以我自己安装的版本为例: 有 两种下载 方式: 直接在windows电脑端点击下载,等 下载完传输从windows上传输到linux服务器上就可 。 –简单方便 在linux上使用指令直接下载。 以自己安装的版本为例:地址:h

    2024年02月08日
    浏览(52)
  • 【Linux】01 Ubantu安装NFS服务器及其使用

    在Ubantu终端执行以下命令即可安装: sudo apt install nfs-kernel-server  sudo mkdir /home/root/linux/nfs 使用如下命令打开 nfs 配置文件/etc/exports: sudo vi /etc/exports 打开/etc/exports 以后在后面添加如下所示内容: /home/root/linux/nfs  *(rw,sync,no_root_squash)  解析 :          /home/root/linux/nfs :指

    2024年01月21日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包