linux服务器设置sftp传输文件账号的实现方式

 更新时间:2026年02月12日 09:35:00   作者:追逐梦想永不停  
文章介绍了如何在Linux服务器上配置SFTP服务,并设置一个仅允许SFTP传输的用户,通过创建特定的目录和配置文件,可以实现文件的上传和下载,最后,使用FileZilla进行了测试,验证了配置的正确性

一、前言

linux自带sftp功能,只要配置一个账号,就能用sftp来上传下载文件。

当需要sftp服务器测试的时候,很好用,只要有linux服务器就行了,不用花钱买sftp软件。

二、sftp账号设置方法

1.登录你的linux服务器

2.创建父目录

sudo mkdir -p /home/sftp/sftpuser

这个目录当做用户目录。

3.创建用户,指定用户目录

# 创建用户 sftpuser,指定 home
sudo useradd -m -d /home/sftp/sftpuser -s /usr/sbin/nologin sftpuser

这里创建了一个nologin用户sftpuser,这个用户禁止ssh登录。

4.设置用户密码

sudo passwd sftpuser

这个是给sftpuser用户设置密码,输入后会提示你输入两次新密码。

5.给用户目录配置权限

sudo chown root:root /home/sftp/sftpuser
sudo chmod 755 /home/sftp/sftpuser

这里设置sftpuser目录属于root用户,权限是755.

6.配置上传目录

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

这里再创建一个data目录,设置属于root用户,权限755,用来给用户上传文件用。

7.配置账号仅允许SFTP传输

sudo vi /etc/ssh/sshd_config

用这个命令打开配置文件,注意,然后在这个文件的末尾加上:

Match User sftpuser
    ChrootDirectory /home/sftp/%u/data
    ForceCommand internal-sftp
    PasswordAuthentication yes
    AllowAgentForwarding no
    X11Forwarding no
    PermitTunnel no
    AllowTcpForwarding no

其中设置了ChrootDirectory ,意思是以data目录为根目录;

PasswordAuthentication ,意思是允许账号密码登录(如果不设置,有可能只能用秘钥登录,就得看其他地方的全局配置了)。

8.保存配置文件

#先按ESC,然后输入这个,然后回车保存
:wq

9.重启配置文件

sudo systemctl restart sshd

10.准备测试

根目录只有root用户能创建文件夹,sftpuser不能创建,所以先创建几个测试用。

sudo mkdir -p /home/sftp/sftpuser/data/upload
sudo mkdir -p /home/sftp/sftpuser/data/download

sudo chmod -R 777 /home/sftp/sftpuser/data/*

这里创建了两个文件夹,upload和download,然后设置权限777,所有用户都能用。

11.使用FileZilla测试,输入服务器ip,用户名是sftpuser,密码是自己设置的用户密码,注意端口输入22。(sftp端口22)

如图,sftp连接后,以data作为根目录(用户看到就是/),其中是测试步骤创建的download文件夹与upload文件夹。

注意sftpuser用户不能直接在根目录里上传下载文件,需要在下级文件夹才行。(download文件夹与upload文件夹)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux获取10个你最常用的终端命令列表

    Linux获取10个你最常用的终端命令列表

    今天小编就为大家分享一篇关于Linux获取10个你最常用的终端命令列表,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-09-09
  • apache 虚拟主机的配置方法

    apache 虚拟主机的配置方法

    apache 虚拟主机的配置方法,需要的朋友可以参考下。
    2010-04-04
  • linux实现定时备份mysql数据库的简单方法

    linux实现定时备份mysql数据库的简单方法

    在本篇文章中我们给大家整理了一些关于linux实现定时备份mysql数据库的简单方法,有需要的朋友们可以学习下。
    2018-09-09
  • Linux离线安装gcc和gcc-c++全过程

    Linux离线安装gcc和gcc-c++全过程

    文章介绍了在联网和离线情况下安装GCC和GCC-C++组件的方法,联网时,可以直接使用命令`yum -y install gcc`进行安装,离线安装时,需要从百度云盘下载GCC和GCC-C++的离线安装包,然后按照一定的顺序执行安装命令,此外,文章还提供了查看GCC版本和安装GCC-C++组件的步骤
    2025-10-10
  • 两个linux服务器间复制文件方式

    两个linux服务器间复制文件方式

    这篇文章主要介绍了两个linux服务器间复制文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Linux下Kafka单机安装配置方法(图文)

    Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢
    2015-12-12
  • PHP程序员玩转Linux系列 搭建FTP代码开发环境

    PHP程序员玩转Linux系列 搭建FTP代码开发环境

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,FTP代码开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 如何解决Linux下Too many open files问题

    如何解决Linux下Too many open files问题

    Too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。
    2021-06-06
  • CentOS7 安装 PostgreSQL11的方法步骤

    CentOS7 安装 PostgreSQL11的方法步骤

    这篇文章主要介绍了CentOS7 安装 PostgreSQL11的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Ubuntu下搭建mail邮件服务器的方法教程

    Ubuntu下搭建mail邮件服务器的方法教程

    这篇文章主要给大家介绍了Ubuntu下搭建mail服务器的方法教程,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-04-04

最新评论