设置 SFTP 服务器 Ubuntu - 安全 SSH 文件传输
在 Ubuntu 上安装 OpenSSH,创建传输用户并开始在端口 22 上接受加密的 SFTP 连接——这是大多数指南都会跳过的干净的分步路线。
📑章节
- 什么是 SFTP — SSH 内的文件传输,端到端加密
- 在 Ubuntu 上安装 OpenSSH 服务器包
- 启动 ssh 服务并使其在重新启动后仍能正常运行
- 确认 sshd_config 中的 SFTP 子系统行
- 创建专用的转移用户 - 切勿使用管理员登录名
- 打开 SSH 防火墙
- 从第二台计算机连接并传输第一个文件
- 服务器实际使用前的安全检查
📋 概述和分步指南
安装 OpenSSH 服务器包
SFTP 是基于 SSH 的文件传输,因此每个密码和每个文件都经过端到端加密。在 Ubuntu 上,它不是您寻找的单独产品 - 它是 OpenSSH 服务器的一小部分。 Ubuntu 附带了 SSH 客户端,但服务器端是一个单独的包。安装它:
sudo apt update
sudo apt install openssh-server
首先运行 sudo apt update 以使软件包列表是最新的,然后安装并使用 Y 确认。安装程序在 /etc/ssh/sshd_config 中创建配置并自动生成该计算机的主机密钥。这确实是所有软件——SFTP 是该服务的一个子系统,而不是额外下载,并且它在标准 SSH 端口 22 上进行响应。
启动服务并使其在重新启动后仍能正常运行
包通常会自行启动服务。证明这一点,并确保它在断电后恢复:
sudo systemctl status ssh
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh 应显示绿色的活动(正在运行) 行 — 这意味着 SFTP 服务器已在侦听。 sudo systemctl enable ssh 使其在每次启动时启动,如果它停止,则 sudo systemctl start ssh 将其恢复。稍后进行任何配置更改后,sudo systemctl restart ssh 是应用它的命令。
ssh,而不是 sshd。使用错误的名称是正确指南失败的最常见原因。确认 SFTP 子系统线路
打开config一次简单看一下:
sudo nano /etc/ssh/sshd_config
在底部附近您应该会找到这一行,Ubuntu 默认包含该行:
Subsystem sftp /usr/lib/openssh/sftp-server
如果该行丢失,请完全按照所示添加 — 如果没有该行,SSH 登录可以工作,但文件传输会被拒绝。暂时不要管其他事情;对此文件的强化更改是有意一次进行一项设置。
创建专用转移用户
切勿将您自己的管理员登录信息用于文件传输。创建一个仅用于移动文件的帐户:
sudo adduser sftpuser
当询问时设置密码,并使用 Enter 跳过姓名和电话问题 - 它们是可选的。该用户在 /home/sftpuser 处获得一个主文件夹,仅此而已。
打开防火墙
如果 UFW 在服务器上处于活动状态,则端口 22 需要显式传递,然后任何客户端才能访问该服务:
sudo ufw allow OpenSSH
sudo ufw status
OpenSSH 配置文件恰好打开端口 22 — 承载 SSH 登录和 SFTP 传输的单个端口。在从另一台计算机进行测试之前,请确认规则已在状态输出中列出。
连接并传输第一个文件
从同一网络上的第二台计算机,与转移用户连接。将地址替换为服务器的真实 IP — 在服务器上运行 ip a 即可查看:
sftp [email protected]
在会话中,put 上传文件,get 下载文件,exit 离开。在 Windows 上,WinSCP 和 FileZilla 都使用 SFTP,并且仅使用地址、端口 22、用户名和密码进行连接。
yes — 这是证明您已到达自己的服务器而不是冒名顶替者的检查。现在将此服务器保留在本地网络上:将其放在互联网上是一个不同的决定,首先需要密钥登录而不是密码和像fail2ban这样的保护。在强化完成之前,请勿转发路由器端口。您的服务器现在正在工作。快速安装为您提供了一台可以工作的服务器,而不是一个完整的服务器——开放互联网上的密码登录、可以看到整个磁盘的用户以及没有登录记录是接下来要一一弥补的三个差距。
🏷️主题搜索变量和关键字
🎙️ 完整文字记录 — 点击展开
__TOK_31__
__TOK_32__
__TOK_33__
❓ 常见问题(英文)
本教程是 100% 免费学习的吗?
__TOK_34__
初学者可以遵循本指南吗?
__TOK_35__
如果遇到困难我可以在哪里提问?
__TOK_36__