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下免密码切换到root用户当注意的问题

    浅谈Linux下免密码切换到root用户当注意的问题

    下面小编就为大家带来一篇浅谈Linux下免密码切换到root用户当注意的问题。小编觉得挺不错的。现在就分享给大家。也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 详解 Linux中的关机和重启命令

    详解 Linux中的关机和重启命令

    这篇文章主要介绍了详解 Linux中的关机和重启命令的相关资料,希望通过此文能帮助到大家掌握这部分内容,需要的朋友可以参考下
    2017-08-08
  • linux查看硬盘大小与挂载硬盘的实现

    linux查看硬盘大小与挂载硬盘的实现

    这篇文章主要介绍了linux查看硬盘大小与挂载硬盘的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Linux AMH 服务器管理面板远程访问的操作方法

    Linux AMH 服务器管理面板远程访问的操作方法

    AMH 是一款基于 Linux 系统的服务器管理面板,它提供了一系列的功能,包括网站管理、FTP 管理、数据库管理、DNS 管理、SSL 证书管理等,本文介绍在Linux 中安装AMH面板并结合Cpolar 内网穿透工具实现远程访问,感兴趣的朋友一起看看吧
    2023-11-11
  • apache documentroot指向htcdoc之外提示403错误的解决方法

    apache documentroot指向htcdoc之外提示403错误的解决方法

    在windows和RH都碰到过,只要把主目录指到其他地方后就出现权限不够的403提示,郁闷了好久。
    2010-04-04
  • 在linux服务器下使用版本控制软件SVN的方法

    在linux服务器下使用版本控制软件SVN的方法

    下面小编就为大家分享一篇在linux服务器下使用版本控制软件SVN的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Linux利用traceroute命令发现负载均衡的实战案例

    Linux利用traceroute命令发现负载均衡的实战案例

    在网络管理和故障排除中,了解数据包的路径和识别负载均衡节点是非常重要的,traceroute 命令是一个用于跟踪数据包在网络中经过的路由路径的工具,本文将详细介绍如何利用 traceroute 命令发现网络中的负载均,需要的朋友可以参考下
    2024-07-07
  • 如何卸载linux自带openjdk并安装sun jdk

    如何卸载linux自带openjdk并安装sun jdk

    这篇文章主要介绍了如何卸载linux自带openjdk并安装sun jdk,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Linux中tcpdump命令实例详解

    Linux中tcpdump命令实例详解

    用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。下面这篇文章主要给大家介绍了关于Linux中tcpdump命令的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • linux中设置固定ip的方法(亲测有效)

    linux中设置固定ip的方法(亲测有效)

    这篇文章主要介绍了linux设置固定ip的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论