当前位置: 首页 > article >正文

服务器上加入SFTP------(小白篇 1)

在服务器上配置 SFTP (基于 SSH 的文件传输协议) 通常比传统 FTP 更安全,因为它默认加密通信。以下是详细的配置步骤,以 Ubuntu 或 CentOS 为例。


1.服务器上加入SFTP------(小白篇 1)

2.加入SFTP 用户------(小白篇 2)

3.代码加入SFTP JAVA —(小白篇3)

4.代码加入SFTP Python —(小白篇4

5.代码加入SFTP Go —(小白篇5)


1. 检查或安装 OpenSSH

大多数 Linux 系统默认安装了 OpenSSH。如果未安装,请根据您的操作系统安装:

Ubuntu/Debian:
sudo apt update
sudo apt install openssh-server
CentOS/RHEL:
sudo yum install openssh-server

验证服务状态:

sudo systemctl status ssh

如果未运行,可以启动并设置开机自启:

sudo systemctl start ssh
sudo systemctl enable ssh

2. 创建 SFTP 用户

创建一个新的用户(如 sftpuser)并设置密码:

sudo adduser sftpuser
sudo passwd sftpuser123

3. 配置 SFTP 专用目录

创建用户的 SFTP 主目录,并设置权限:

sudo mkdir -p /home/sftpuser/uploads
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo chown sftpuser:sftpuser /home/sftpuser/uploads

4. 修改 SSH 配置文件

编辑 SSH 配置文件以启用 SFTP 子系统:

sudo nano /etc/ssh/sshd_config

在文件中找到以下行:

#Subsystem sftp /usr/lib/openssh/sftp-server

注释掉原行并添加:

Subsystem sftp internal-sftp

在文件末尾添加以下内容来限制 SFTP 用户只访问自己的目录:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

5. 重启 SSH 服务

保存配置后,重启 SSH 服务:

sudo systemctl restart ssh

6. 测试 SFTP 登录

使用命令行或工具(如 FileZilla)测试登录:

命令行测试:
sftp sftpuser@<服务器IP地址>

输入密码后,您应该只能访问 /uploads 目录。

FileZilla 测试:
  1. 主机:输入服务器 IP 地址。
  2. 协议:选择 SFTP。
  3. 用户名:sftpuser
  4. 密码:用户设置的密码。
  5. 端口:22(默认 SFTP 端口)

点击“快速连接”测试。


7. (可选) 限制 SFTP 用户权限

如果您需要进一步限制用户权限,可以修改用户组或设置以下权限:

sudo chmod 700 /home/sftpuser/uploads

8. 开放防火墙端口

确保服务器的防火墙允许 SFTP(通常为 22 端口):

sudo ufw allow 22
# 或
sudo firewall-cmd --add-port=22/tcp --permanent
sudo firewall-cmd --reload

9. 启用密钥认证 (推荐)

您可以为 SFTP 用户启用 SSH 密钥认证,而不使用密码:

  1. 生成密钥对:
ssh-keygen -t rsa
  1. 将公钥上传到服务器:
ssh-copy-id sftpuser@<服务器IP地址>
  1. 确保 ~/.ssh/authorized_keys 文件权限正确:
chmod 600 ~/.ssh/authorized_keys

完成以上步骤后,您的 SFTP 配置已完成并安全可用。


http://www.kler.cn/a/447695.html

相关文章:

  • MobaXterm 连接不上VMware 的Ubuntu 虚拟机
  • 国家认可的人工智能从业人员证书如何报考?
  • LeetCode 热题 100_K 个一组翻转链表(31_25_困难_C++)(四指针法)
  • 安全算法基础(一)
  • 使用 datamodel-code-generator 从 MySQL 生成 Python 模型
  • 【设计模式】空接口
  • Bayes-GRU-Attention的数据多特征分类预测Matlab实现
  • 方正畅享全媒体新闻采编系统 screen.do SQL注入漏洞复现(附脚本)
  • 基于xiaothink对Wanyv-50M模型进行c-eval评估
  • 2024年企业中生成式 AI 的现状报告
  • wget -q -O
  • 数据结构 C/C++(实验七:排序)
  • macos 隐藏、加密磁盘、文件
  • Electric Capital 2024 年开发者报告 | 洞见未来 Web3 生态发展方向
  • 【C++——临时对象,const T】
  • Python 从入门到实战46(Matplotlib绘制常用表)
  • sentinel学习笔记1-为什么需要服务降级
  • JUC并发工具---阻塞队列
  • 加电:DETR论文阅读
  • 基于鲲鹏服务器的打砖块小游戏部署
  • 《开启微服务之旅:Spring Boot 从入门到实践》(二)
  • 三种国产大语言模型Python免费调用
  • “在Python中,所有的数据都是对象”是什么意思?
  • 贪心算法求解跳跃游戏
  • 企业内训|高智能数据构建、Agent研发及AI测评技术内训-吉林省某汽车厂商
  • 对计算机网络中“层”的理解