如何在Ubuntu上创建安全的SFTP服务?

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
简介: SFTP 代表安全文件传输协议。与代表文件传输协议的 FTP 不同,SFTP 对传输的数据进行加密,确保安全性和完整性。这意味着您的文件将保持机密并且在传输过程中不会被篡改。

什么是 SFTP?

SFTP 代表安全文件传输协议。与代表文件传输协议的 FTP 不同,SFTP 对传输的数据进行加密,确保安全性和完整性。这意味着您的文件将保持机密并且在传输过程中不会被篡改。

一、前提条件

1、安装有Ubuntu系统的云服务器

推荐阿里云这样的厂商的服务器,比较稳定。

阿里云服务器:https://iil.ink/aliecs

2、有root或sudo访问权限

服务器购买之后,就会给你root帐号和密码。

二、安装OpenSSH服务

Ubuntu 通常预装了 SSH 客户端。但是,出于今天的目的,我们需要单独 OpenSSH 服务。

sudo apt update
sudo apt install openssh-server

安装完成后,检查服务的状态:

sudo systemctl status ssh

在“Active”看到“active (running)”
image.png

检查systemctl服务状态

如果该服务未运行,可以使用以下命令启动它:

sudo systemctl start ssh

三、配置SFTP

1、创建专用 SFTP 组和用户

建议(根据个人经验)为 SFTP 设置专门的组和用户。这可确保隔离并更好地控制权限。

创建一个群组:

sudo groupadd sftp_users

使用sftpuser创建一个用户

sudo useradd -m sftpuser -g sftp_users

为该用户设置密码:

sudo passwd sftpuser

image.png

创建专用 SFTP 组和用户

2、配置 SSHD 配置文件

用编辑器打开 SSHD 配置文件。我通常使用nano,或者使用vim等:

sudo nano /etc/ssh/sshd_config

向下滚动并查找js Subsystem sftp /usr/lib/openssh/sftp-server
。 #通过在行首添加 a 将其注释掉。在其下方添加:

Subsystem sftp internal-sftp

在文件的最底部添加以下代码:

Match Group sftp_users
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

image.png
配置sftp服务

这是最终的编辑:
按 CTRL X 保存并退出编辑器,然后按“Y”保存文件。
这里做的目的是告诉 SSH 服务器限制该组的sftp_users用户他们的主目录使用 SFTP 协议。

3、调整目录权限

为了使 chroot 环境正常工作,用户的主目录需要有 root 权限:

sudo chown root:root /home/sftpuser

用户需要有上传和下载文件的权限,因此为此创建一个目录:

sudo mkdir /home/sftpuser/files
sudo chown sftpuser:sftp_users /home/sftpuser/files

4、重新启动 SSH 服务

重新启动 SSH 服务

sudo systemctl restart ssh

image.png
调整目录权限并重启SSH服务

5、测试 SFTP 服务

我们测试一下我们的设置:

sftp sftpuser@your_server_ip

sftpuser出现提示时输入您设置的密码。
image.png
如果一切都正确完成,需要登录files到sftpuser. 继续使用put、get和ls命令上传、下载或列出文件。

注意事项:

参考下面的这篇文章:【如何在Ubuntu上创建安全的SFTP服务?

目录
相关文章
|
Ubuntu
百度搜索:蓝易云【Ubuntu开机自启服务systemd.service配置教程】
现在,你的服务将在Ubuntu开机时自动启动,并在之后的启动中持续运行。记得根据你的实际需求修改 `your_service_name.service`文件中的相关信息。
467 2
|
监控 Ubuntu 安全
Ubuntu开启FTP服务教程
在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和配置FTP服务器,以及如何管理用户权限来保证服务器的安全性。
1798 0
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
296 1
|
3月前
|
Ubuntu 网络安全 数据安全/隐私保护
搭建SSH服务于RK3399平台上的Ubuntu 18.04,实现远程连接
以上步骤涵盖从安 装 到配制再至实际使 用户建立Ssh 连接所需知识点 。务必注意,在对外提供Ssh 访问
181 2
|
7月前
|
Ubuntu 数据安全/隐私保护
在Ubuntu系统中增加Openfire服务设置和管理
至此,你已经完成了在Ubuntu中增加Openfire服务的设置和管理。希望你在这个过程中,能像享受一场摇滚音乐会一样,体验编程的乐趣和成就感。祝你玩得开心!
153 27
|
7月前
|
存储 运维 Ubuntu
Ubuntu环境下NTP时间同步服务的离线安装方法
以上就是Ubuntu环境下离线安装和配置NTP时间同步服务的全过程。这种有效的操作不仅可为有网络隔离需求的安全重要环境提供参考,同时也能帮助研发、运维人员在同类情况下处理问题。太阳走过万丈高空,而我们通过NTP服务,轻松把握时间,如同手握流沙,控制每一颗时间粒子的行走。
1212 23
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
394 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
缓存 Ubuntu 前端开发
在Ubuntu上手动与自动启动Nginx的踩坑经历、以及重启服务
本文分享了作者在Ubuntu系统上手动和自动启动Nginx服务的踩坑经历,包括创建启动脚本、解决依赖问题、配置服务自动启动以及通过命令行管理Nginx服务的方法。
823 0
在Ubuntu上手动与自动启动Nginx的踩坑经历、以及重启服务
|
Ubuntu 应用服务中间件 Linux
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
145 0
|
安全 Ubuntu 网络安全
如何在Ubuntu上配置WordPress安全更新和安装
如何在Ubuntu上配置WordPress安全更新和安装
239 0

热门文章

最新文章