【Liunx常用操作】配置sftp服务器(用户独立目录&用户共享目录)

这篇具有很好参考价值的文章主要介绍了【Liunx常用操作】配置sftp服务器(用户独立目录&用户共享目录)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:为保证文章的正确性和实用性,文章内容可能会不定时优化改进,若您有建议或者文章存在错误请私信留言或评论指正💖😊💖。下面以Ubuntu22.04操作系统为例,介绍具体的操作步骤,如果本文对你有帮助,记得关注加收藏🤞。


1、文章前言

本文以Ubuntu22.04系统为例,介绍如何在Linux环境中,根据用户数据隔离性需求,配置独立或共享目录的sftp服务。

2、服务介绍

SFTP(SSH File Transfer Protocol)是一种通过SSH(Secure Shell)进行安全传输文件的协议。由于SFTP是基于SSH的,所以SFTP使用SSH的TCP22端口进行数据传输,具备了SSH的安全性和数据加密功能来保护文件传输过程中的数据安全。

3、操作步骤

3.1、规划配置sftp全局数据存储目录

在配置sftp之前,首先要规划并配置好sftp数据存储目录。在生产环境使用中,建议为sftp数据存储目录单独挂载一个lvm逻辑卷,而不是直接挂载使用磁盘分区,使用逻辑卷的好处是方便后期动态调整sftp数据存储目录空间大小,以及对数据进行快照等操作。
步骤一: 如下图,请参考【Liunx常用操作】LVM逻辑卷的介绍和相关操作(创建、删除、扩缩容)章节中的“创建并挂载逻辑卷”步骤,完成sftp数据存储目录的创建和挂载。
注意:sftp数据存储目录的所属用户和组要配置为“root:root”,权限配置为755
sftp目录,Linux,服务器,运维,linux

3.2、配置sftp用户独立目录的sftp服务

3.2.1、创建并配置sftp用户

步骤一: 执行以下命令,创建用户组“sftpusers”。

sudo groupadd -f sftpusers

sftp目录,Linux,服务器,运维,linux
步骤二: 执行以下命令,创建用户“zhangsan、lisi”,并指定用户所属组为“sftpusers”。

sudo useradd -g sftpusers zhangsan
sudo useradd -g sftpusers lisi

sftp目录,Linux,服务器,运维,linux

步骤三: 执行以下命令,并根据提示,设置用户“zhangsan、lisi”的密码。

sudo passwd zhangsan
sudo passwd lisi

sftp目录,Linux,服务器,运维,linux
步骤四: 执行以下命令,设置用户“zhangsan、lisi”的密码为永不过期。

sudo chage -m 0 -M 99999 -I -1 -E -1 zhangsan
sudo chage -m 0 -M 99999 -I -1 -E -1 lisi

sftp目录,Linux,服务器,运维,linux
步骤五: 执行以下命令,创建用户“zhangsan、lisi”同名目录以及数据存储目录“data”。

sudo mkdir -p /sftpdata/zhangsan/data
sudo mkdir -p /sftpdata/lisi/data

sftp目录,Linux,服务器,运维,linux
步骤六: 执行以下命令,将“zhangsan、lisi”数据存储目录“data”的所属用户和用户组分别配置为“zhangsan:sftpusers”和“lisi:sftpusers”。

sudo chown zhangsan:sftpusers /sftpdata/zhangsan/data/
sudo chown lisi:sftpusers /sftpdata/lisi/data/

sftp目录,Linux,服务器,运维,linux
步骤七: 执行以下命令,分别修改用户“zhangsan、lisi”的主目录为“/sftpdata/zhangsan”和“/sftpdata/lisi”。

sudo usermod -d /sftpdata/zhangsan/ zhangsan
sudo usermod -d /sftpdata/lisi/ lisi

sftp目录,Linux,服务器,运维,linux

3.2.2、配置sshd_config文件

步骤一: 执行以下命令,查看系统内是否安装openssh-server服务。

apt list |grep openssh-server

或者

dpkg --get-selections |grep openssh-server

sftp目录,Linux,服务器,运维,linux
步骤二: 若已安装openssh-server服务,则执行步骤三配置sftp服务相关参数。若未安装openssh-server服务,则参考【Liunx常用操作】Ubuntu Server系统配置软件源章节,配置软件源并安装openssh-server服务后,再执行下面步骤。
步骤三: 执行以下命令,编辑sftp的配置文件“/etc/ssh/sshd_config”。

sudo vim /etc/ssh/sshd_config

步骤四: 按住“Shift”+“g”键,将光标移动至配置文件最后一行,按“o”另起一行进入插入模式,并根据下表描述,复制以下内容至配置文件末尾,修改参数值为实际环境需求。
针对用户生效的sftp配置模板:

Match User zhangsan
    ChrootDirectory /sftpdata/zhangsan
    ForceCommand internal-sftp
    PermitTunnel no
    AllowTcpForwarding no

Match User lisi
    ChrootDirectory /sftpdata/lisi
    ForceCommand internal-sftp

sftp目录,Linux,服务器,运维,linux

参数 说明
Match User xxx或者Group xxx 引入一个条件块,条件块以Match开始,以另一个Match或者文件结尾结束。Match下面的配置项针对当前Match的值生效,且比全局设置的参数优先。如果存在一个值满足多个Match,则针对该值只生效第一个Match下的参数
ChrootDirectory 目录 将sftp用户限制在指定的目录中,用户将无法访问该目录之外的文件系统目录
ForceCommand internal-sftp或者cvs server或者命令脚本的绝对路径 指定用户成功登录后要强制执行的命令或脚本权限。比如仅允许使用sftp协议进行文件传输操作的“internal-sftp”或者仅允许访问CVS服务器的“cvs server”又或者可以通过配置“/etc/profile”以及用户的“~/.bashrc”文件自定义限制权限的“/usr/local/bin/limited-shell
PermitTunnel yes or no 是否允许用户进行进行SSH隧道链接,禁止可以防止用户在sftp会话中建立与其他服务器或设备的SSH隧道连接
AllowTcpForwarding yes or no 是否允许用户进行TCP转发,禁止可以防止用户在sftp会话中建立与其他服务器或设备的TCP连接
X11Forwarding yes or no 是否允许用户进行X11转发,禁止可以防止用户在sftp会话中显示远程X11图形应用程序窗口
AllowAgentForwarding yes or no 是否允许用户进行代理转发,禁止可以防止用户在sftp会话中使用代理转发来访问其他系统或服务,甚至绕过网络防火墙
PermitTTY yes or no 是否允许用户在sftp会话中使用TTY(终端)进行交互,默认为yes。禁止可以限制用户只能执行非交互式的命令或脚本

步骤五: 在“/etc/ssh/sshd_config”配置文件中找到如下行并取消注释(删除行首的#符号)。若没有该行则手动添加,若有该行则查看行首是否有#,有则去掉#,没有则跳过该步骤。

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

sftp目录,Linux,服务器,运维,linux
步骤六: sftp相关配置修改完成后,按“Esc”键退出vim文本编辑器的插入模式,按住“Shift”+“:”键进入vim文本编辑器的命令行模式,输入“wq”保存修改并退出编辑。
sftp目录,Linux,服务器,运维,linux
步骤七: 执行以下命令,重启ssh服务使配置生效。

sudo systemctl restart ssh

步骤八: 执行以下命令,确认ssh服务状态为“active (running)”。

sudo systemctl status  ssh

sftp目录,Linux,服务器,运维,linux

3.2.3、验证sftp连接

步骤一: 本地执行以下命令,输入密码分别用“zhangsan、lisi”用户登录sftp服务器,执行如下图中命令,查看sftp目录下数据,并分别创建一个“welcome_用户名_sftp”的文件夹,然后输入“exit”退出sftp服务器。

sftp zhangsan@127.0.0.1
sftp lisi@127.0.0.1

sftp目录,Linux,服务器,运维,linux
步骤二: 执行以下命令,可以看到各用户目录下的“welcome_用户名_sftp”文件夹。

sudo ls -l /sftpdata/*/data

sftp目录,Linux,服务器,运维,linux
说明:sftp用户空间独立的使用场景下,各个用户在“/etc/ssh/sshd_config”配置文件中需独立配置Match条件块,从而实现每个用户的数据存储目录独立,彼此间不可见。

3.3、配置sftp用户共享目录的sftp服务

3.3.1、创建并配置sftp用户

步骤一: 执行以下命令,创建用户组“sftpusers”。

sudo groupadd -f sftpusers

sftp目录,Linux,服务器,运维,linux
步骤二: 执行以下命令,创建用户“zhangsan、lisi”,并指定用户所属组为“sftpusers”。

sudo useradd -g sftpusers zhangsan
sudo useradd -g sftpusers lisi

sftp目录,Linux,服务器,运维,linux
步骤三: 执行以下命令,并根据提示,设置用户“zhangsan、lisi”的密码。

sudo passwd zhangsan
sudo passwd lisi

sftp目录,Linux,服务器,运维,linux
步骤四: 执行以下命令,设置用户“zhangsan、lisi”的密码为永不过期。

sudo chage -m 0 -M 99999 -I -1 -E -1 zhangsan
sudo chage -m 0 -M 99999 -I -1 -E -1 lisi

sftp目录,Linux,服务器,运维,linux
步骤五: 执行以下命令,创建共享的“share”目录。

sudo mkdir /sftpdata/share/

sftp目录,Linux,服务器,运维,linux
步骤六: 执行以下命令,将“share”目录的所属用户和用户组配置为“zhangsan:sftpusers”,并把权限设置为“777”。

sudo chown zhangsan:sftpusers /sftpdata/share/
sudo chmod 777 /sftpdata/share/

sftp目录,Linux,服务器,运维,linux
步骤七: 执行以下命令,分别修改用户“zhangsan、lisi”的主目录为“/sftpdata/share”。

sudo usermod -d /sftpdata/share/ zhangsan
sudo usermod -d /sftpdata/share/ lisi

sftp目录,Linux,服务器,运维,linux

3.3.2、配置sshd_config文件

步骤一: 执行以下命令,查看系统内是否安装openssh-server服务。

apt list |grep openssh-server

或者

dpkg --get-selections |grep openssh-server

sftp目录,Linux,服务器,运维,linux
步骤二: 若已安装openssh-server服务,则执行步骤三配置sftp服务相关参数。若未安装openssh-server服务,则参考【Liunx常用操作】Ubuntu Server系统配置软件源章节,配置软件源并安装openssh-server服务后,再执行下面步骤。
步骤三: 执行以下命令,编辑sftp的配置文件“/etc/ssh/sshd_config”。

sudo vim /etc/ssh/sshd_config

步骤四: 按住“Shift”+“g”键,将光标移动至配置文件最后一行,按“o”另起一行进入插入模式,并根据下表描述,复制以下内容至配置文件末尾,修改参数值为实际环境需求。
针对sftpusers用户组生效的sftp配置模板:
说明:使用“针对sftpusers用户组生效的sftp配置模板”配置“/etc/ssh/sshd_config”文件时,如果后期需要新增sftp用户,只需参考上面步骤创建新的sftp用户并加入sftpusers用户组即可,无需再次修改“/etc/ssh/sshd_config”配置文件。

Match Group sftpusers
    ChrootDirectory /sftpdata/
    ForceCommand internal-sftp
    PermitTunnel no
    AllowTcpForwarding no
    X11Forwarding no
    AllowAgentForwarding no

sftp目录,Linux,服务器,运维,linux

参数 说明
Match User xxx或者Group xxx 引入一个条件块,条件块以Match开始,以另一个Match或者文件结尾结束。Match下面的配置项针对当前Match的值生效,且比全局设置的参数优先。如果存在一个值满足多个Match,则针对该值只生效第一个Match下的参数
ChrootDirectory 目录 将sftp用户限制在指定的目录中,用户将无法访问该目录之外的文件系统目录
ForceCommand internal-sftp或者cvs server或者命令脚本的绝对路径 指定用户成功登录后要强制执行的命令或脚本权限。比如仅允许使用sftp协议进行文件传输操作的“internal-sftp”或者仅允许访问CVS服务器的“cvs server”又或者可以通过配置“/etc/profile”以及用户的“~/.bashrc”文件自定义限制权限的“/usr/local/bin/limited-shell
PermitTunnel yes or no 是否允许用户进行进行SSH隧道链接,禁止可以防止用户在sftp会话中建立与其他服务器或设备的SSH隧道连接
AllowTcpForwarding yes or no 是否允许用户进行TCP转发,禁止可以防止用户在sftp会话中建立与其他服务器或设备的TCP连接
X11Forwarding yes or no 是否允许用户进行X11转发,禁止可以防止用户在sftp会话中显示远程X11图形应用程序窗口
AllowAgentForwarding yes or no 是否允许用户进行代理转发,禁止可以防止用户在sftp会话中使用代理转发来访问其他系统或服务,甚至绕过网络防火墙
PermitTTY yes or no 是否允许用户在sftp会话中使用TTY(终端)进行交互,默认为yes。禁止可以限制用户只能执行非交互式的命令或脚本

步骤五: 在“/etc/ssh/sshd_config”配置文件中找到如下行并取消注释(删除行首的#符号)。若没有该行则手动添加,若有该行则查看行首是否有#,有则去掉#,没有则跳过该步骤。

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

sftp目录,Linux,服务器,运维,linux
步骤六: sftp相关配置修改完成后,按“Esc”键退出vim文本编辑器的插入模式,按住“Shift”+“:”键进入vim文本编辑器的命令行模式,输入“wq”保存修改并退出编辑。
sftp目录,Linux,服务器,运维,linux
步骤七: 执行以下命令,重启ssh服务使配置生效。

sudo systemctl restart ssh

步骤八: 执行以下命令,确认ssh服务状态为“active (running)”。

sudo systemctl status  ssh

sftp目录,Linux,服务器,运维,linux

3.3.3、验证sftp连接

步骤一: 本地执行以下命令,输入密码分别用“zhangsan、lisi”用户登录sftp服务器,执行如下图中命令,查看sftp目录下数据,并分别创建一个“用户名_create_welcome”的文件夹,然后输入“exit”退出sftp服务器。

sftp zhangsan@127.0.0.1
sftp lisi@127.0.0.1

sftp目录,Linux,服务器,运维,linux
步骤二: 执行以下命令,可以看到“share”目录下各个“用户名_create_welcome”文件夹,。

sudo ls -l /sftpdata/share/

sftp目录,Linux,服务器,运维,linux
说明:sftp用户空间共享的使用场景下,各个用户在“/etc/ssh/sshd_config”配置文件中共用sftpusers用户组的Match条件块,从而实现每个用户的可见权限相同,彼此数据共享,其他用户可以看见但默认不可修改。

4、总结

sftp服务的配置流程大致为:规划配置sftp全局数据存储目录 > 检查或安装openssh-server服务 > 创建sftp用户及其数据存储目录 > 配置“/etc/ssh/sshd_config文件” > 重启ssh服务 > 用户登录测试文章来源地址https://www.toymoban.com/news/detail-756885.html

到了这里,关于【Liunx常用操作】配置sftp服务器(用户独立目录&用户共享目录)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Liunx服务器磁盘挂载

    可以看到我的vdb磁盘是没有进行挂载的,挂载前需要先进行磁盘分区 分区相关指令 m 显示命令列表 p 显示磁盘分区同fdisk -l n 新增分区 d 删除分区 w 写入并退出 首先输入n新增分区,然后选择p分区类型为主分区。然后按回车键直到出现“ Command(m for help): ”,最后输入w写入分

    2024年02月12日
    浏览(44)
  • 【麒麟服务器操作系统忘记开机密码怎么办?---银河麒麟服务器操作系统更改用户密码】

    以最新版本 Kylin-Server-10-SP2-x86-Release-Build09-20210524 为例。 图 1.1 grub 菜单 2.1按下”e”输入,输入用户名和密码(root/Kylin123123)(如图 1.2.1) 图 1.2.1 进入 kernel 2.2在 linux16(kernel)那行最后添加“rw(空格)init=/bin/bash (空格) console=tty0” (如图 1.2.2)。 图 1.2.2 编辑 kernel 2.3按

    2024年02月04日
    浏览(158)
  • liunx服务器安装kafka

    kafka 3.0.0 之前 (包括3.0.0版本)支持jdk 8 ,3.0.0之后版本不再支持jdk8版本 , 按照官网安装kafka ,出现了各种各样的问题。 总结:kafka和zookeeper和jdk版本对应, kafka启动报错 根据提示改正后 需要删除某些临时文件内容 。 下面整理了kafka安装的完整步骤, 适合所有kafka安装版

    2024年02月08日
    浏览(35)
  • liunx服务器使用selenium

    最近在本地windows系统(下面简称本地)用selenium写了一个自动化爬虫,放到我liunx服务器(下面简称服务器)上面运行报错,记录处理流程 一开始以为和本地一样,下好chrome浏览器和驱动就可以直接运行了(太天真了~) 1、下载chrome 查看chrome版本安装对应版本chromedriver 我的

    2024年02月11日
    浏览(45)
  • Linux搭建SFTP服务器

    1、SFTP简介 SFTP即Secure FileTransfer Protocol(安全文件传输协议),是建立在SSH基础上的文件传输协议,支持使用远程拷贝(remote copy)、上传和下载文件的能力。SFTP比FTP(File Transfer Protocol,文件传输协议)安全得多,具有更多的功能。 SFTP是基于默认的22端口,是SSH内含的协议,

    2024年02月15日
    浏览(56)
  • sftp连接远程服务器命令

         

    2024年02月07日
    浏览(45)
  • 内网搭建 SFTP 服务器

    转载自cpolar极点云的文章:如何在内网搭建SFTP服务器,并发布到公网可访问 下载地址:http://www.freesshd.com/?ctt=download 选择freeFTPD.exe下载 下载后,点击安装 安装之后,它会提示是否启动后台服务,Yes 安装后,点击开始菜单– freeFTPd, 注意 :这里要点击鼠标右键, 以管理员权

    2024年02月06日
    浏览(41)
  • 记录liunx服务器和docker时区修改

    我的博客是部署在docker里面的,然后我发现评论和留言的时间和北京时间是有差别的,相差8个小时,然后发现是因为容器中的时区设置与服务器是不一致的,所以需要设置一下。 查看当前时区设置 使用 date 命令查看当前系统时间,发现当前时区设置为UTC。 列出可用的时区列

    2024年02月10日
    浏览(41)
  • 【Linux】搭建SFTP文件服务器

    1.11 特点 FTP(File Transfer Protocol)是一种用于在计算机之间传输文件的标准网络协议。它提供了一种简单而常用的方式来上传和下载文件,以及进行文件管理操作。 FTP协议的主要特点包括: 客户端-服务器架构 :FTP使用客户端-服务器模型,其中客户端是发送文件请求的一方,

    2024年02月07日
    浏览(41)
  • linux上搭建sftp服务器

    第一步:查看ssh版本 第二步:添加sftp用户组 ​ 创建一个用户组,组名是 sftp 第三步:创建sftp用户并设置密码 ​ 创建一个用户,用户名 sftp_upload 归属于 sftp 用户组 ​ -s /bin/false :不允许shell登录。 -g sftp :加入sftp组 第四步:设置活动目录 第五步:配置chroot目录权限 **注

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包