首页 > 系统相关 >CentOS上搭建SFTP

CentOS上搭建SFTP

时间:2024-05-11 13:57:59浏览次数:16  
标签:sshd CentOS sudo sftpuser SFTP SSH config ssh 搭建

CentOS上搭建SFTP

 

在CentOS上安装SFTP服务通常是通过安装OpenSSH来实现的,因为OpenSSH默认提供了SFTP功能。以下是在CentOS上安装SFTP的步骤:

 

一、安装OpenSSH服务器:

sudo yum install openssh-server

启动SSH服务:

sudo systemctl start sshd

确保SSH服务随系统启动而启动:

sudo systemctl enable sshd

检查SSH服务状态:

sudo systemctl status sshd

这将显示SSH服务是否正在运行以及其他相关信息。

现在,你的CentOS服务器上应该已经安装并运行了SFTP服务。你可以使用任何支持SFTP的客户端(如WinSCP、FileZilla等)连接到服务器。确保使用SSH协议(端口22)进行连接,并使用具有适当权限的用户凭据进行身份验证。

 

二、配置sftp用户、访问目录等

下面是一个完整的例子,假设我们要创建一个名为sftpuser的用户,限制他只能访问/sftp目录,并且使用特定的SSH配置文件。

 

创建SFTP用户:

sudo useradd -m -s /sbin/nologin sftpuser

设置用户密码:

sudo passwd sftpuser

创建用户的SFTP根目录:

sudo mkdir /sftp

设置根目录的权限(根目录必须是root用户,否则sftp连接不上):

sudo chown root:root /sftp

sudo chmod 755 /sftp

在根目录下层建立子目录方可以写入(根目录只能读取不能写入,因为根目录必须是root用户,而sftp访问的用户却是我们新建的sftpuser)

mkdir /sftp/sharedata

chown sftpuser:sftpuser /sftp/sharedata

 

创建新用户自定义ssh配置

简单点直接修改/etc/ssh/sshd_config也可以,这样服务启动选项sshd.service就不用改了

创建用户的SSH配置文件目录:

sudo mkdir /home/sftpuser/.ssh

复制系统SSH配置文件到用户目录:

sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config

编辑用户的SSH配置文件:

sudo vi /home/sftpuser/.ssh/sshd_config

在这个文件中,确保你有适当的配置,例如使用ChrootDirectory限制用户访问,以及其他任何你想要自定义的配置。注意将这个配置节放到最后,否则老是报错: "Directive 'UseDNS' is not allowed within a Match block" 表明在 Match 块中不允许使用 UseDNS 这个指令。

Match User sftpuser

    ChrootDirectory /sftp

    ForceCommand internal-sftp

    AllowTcpForwarding no

X11Forwarding no

 

给新用户的用户目录递归设置归属

chown -R sftpuser:sftpuser /home/sftpuser

给配置文件设置读取权限

chmod 755 /home/sftpuser/.ssh/sshd_config

 

修改SSH服务启动选项

打开SSH服务的启动选项文件,可以使用systemctl status sshd查看找到(通常在 /etc/systemd/system/sshd.service 或 /etc/init.d/sshd 或/usr/lib/systemd/system/sshd.service),并修改为:

ExecStart=/usr/sbin/sshd -f /home/sftpuser/.ssh/sshd_config -D $OPTIONS

或者

/usr/sbin/sshd -f /home/sftpuser/.ssh/sshd_config $OPTIONS

重新加载SSH服务:

systemctl daemon-reload

systemctl restart sshd

现在,用户sftpuser被限制在sftp目录下,并且只能使用SFTP进行文件传输。他们的SSH配置文件位于/home/sftpuser/.ssh/sshd_config,这样他们可以自定义他们的SSH行为而不影响其他用户或系统级别的配置。

 

查看错误日志:

检查系统日志:如果问题仍然存在,请查看系统日志文件,如 /var/log/auth.log 或 /var/log/secure,以获取有关写入文件失败的详细信息。日志文件中可能会提供关于出现问题的原因的线索。

 

三、多SFTP用户如何配置

SSH服务启动选项只能指定一个配置文件。如果你想要为多个用户指定不同的配置,你需要为每个用户创建单独的配置文件,并在启动选项中指定这些文件。

 

例如,如果你有两个用户 sftpuser1 和 sftpuser2,你可以为他们分别创建不同的配置文件,然后在SSH服务的启动选项中指定这些文件。

 

为每个用户创建配置文件:

sudo cp /etc/ssh/sshd_config /home/sftpuser1/.ssh/sshd_config

sudo cp /etc/ssh/sshd_config /home/sftpuser2/.ssh/sshd_config

编辑每个用户的配置文件并根据需要进行自定义:

sudo vi /home/sftpuser1/.ssh/sshd_config

 

Match User sftpuser1

    ChrootDirectory /sftp

    ForceCommand internal-sftp

    AllowTcpForwarding no

    X11Forwarding no

 

sudo vi /home/sftpuser2/.ssh/sshd_config

 

Match User sftpuser2

    ChrootDirectory /sftp/other_directory

    ForceCommand internal-sftp

    AllowTcpForwarding no

    X11Forwarding no

修改SSH服务的启动选项,分别指定每个用户的配置文件:

ExecStart=/usr/sbin/sshd -f /home/sftpuser1/.ssh/sshd_config -f /home/sftpuser2/.ssh/sshd_config -D $OPTIONS

或者

/usr/sbin/sshd -f /home/sftpuser1/.ssh/sshd_config -f /home/sftpuser2/.ssh/sshd_config $OPTIONS

这样配置后,每个用户将使用自己的配置文件,可以分别定制他们的SSH行为。

标签:sshd,CentOS,sudo,sftpuser,SFTP,SSH,config,ssh,搭建
From: https://www.cnblogs.com/hdwang/p/18186365

相关文章

  • 虚拟机安装 centos静态IP配置
    虚拟机安装centos后,配置静态ipcd/etc/sysconfig/network-scriptssudovimifcfg-enp0s8编辑配置文件OXY_METHOD=noneBROWSER_ONLY=noB00TPROTO=dhcpDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV......
  • CentOs上安装minio
    MINIO安装一、下载二进制文件wgethttps://dl.minio.org.cn/server/minio/release/linux-amd64/minio 二、授权,并移动到指定目录chmod+xminiosudomvminio/usr/local/bin/ 二、创建服务文件/usr/lib/systemd/system/minio.service 内容如下: [Unit]Descripti......
  • centOS8上安装Mysql 8.0.26
    1、Mysql官网下载RPM包wgethttps://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm2、检查是否已安装(强力卸载)foriin$(rpm-qa|grepmysql);dorpm-e$i--nodeps;donerm-rf/var/lib/mysql&&rm-rf/etc/my.cnf&&rm-rf/usr/share/mysql备注:可配合......
  • 物理机centos7.9扩展网卡
    前段时间装了一台机器,系统是centos7.9,主板自带两个网口,不够用,又插了一块Inter芯片的4口pcie网卡,重启系统后,使用ipa查看ip信息,网卡直接识别到了,但/etc/sysconfig/network-scripts/目录里没有网卡配置文件,需要手动创建这些文件:#进入目录[root@localhost~]#cd/etc/sysconfig......
  • Hive安装与搭建
    Hive安装搭建1、上传解压配置环境变量#1、解压tar-zxvfapache-hive-3.1.2-bin.tar.gz-C/usr/soft/#2、重名名mvapache-hive-3.1.2-binhive-3.1.2#3、配置环境变量vim/etc/profile#4、在最后增加配置exportHIVE_HOME=/usr/local/soft/hive-3.1.2exportPA......
  • CentOS安装Docker
    CentOS安装Docker今天又重新安装了docker,复习回顾了一下安装过程。这个安装过程还是轻松的,毕竟有官方文档指导Docker文档。这里值得注意的是在linux上安装安装的是DockerEngine,这里有介绍说:DockerEngine是一种开源容器化技术,用于构建和容器化应用程序。Docker引擎充当客......
  • centos7挂载新扩容硬盘
    1.fdisk-l查看新加入硬盘此时实验硬盘是/dev/sdb2.硬盘进行分区fdisk只支持分区小于2T硬盘,parted支持大于2T硬盘分区parted/dev/sdb(用part命令对硬盘进行分区处理)mklabelgpt(设置硬盘格式为GPT格式)unitTB(设置单位为TB)mkpartprimary0100%(起......
  • 使用Jekyll在GitHub上搭建个人网站教程
    一、前言Jekyll是一个简单的、博客感知的、静态站点生成器。它使用Markdown(或其他标记语言)来格式化文本,然后通过Liquid模板引擎来布局网站,最后生成一个完整的静态网站。GitHubPages则允许你在GitHub上直接托管你的网站,并且可以与Jekyll完美结合。下面我们就来详细介绍一下如何使......
  • docker-compose spark集群搭建
    需求满足产品数据团队计算相关需求,搭建spark集群,本集群为一主两从(两台设备)部署环境服务器资源docker-compose安装curl-Lhttps://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname-s`-`uname-m`-o/usr/local/bin/docker-compose......
  • Skywalking单机搭建
     vi 命令行  :setnumber ES启动默认开启了SSL,需要关闭本地才能启动起来,常见问题:https://blog.csdn.net/wlei0618/article/details/123936913 ES单机启动完成:查看启动日志,password记录下,首次才有下面的信息。 ES页面返回  Skywalking oap的配置c......