SFTP - 使用证书认证的多个用户和一个超级用户的配置

SFTP - 使用证书认证的多个用户和一个超级用户的配置

我需要您帮助配置我在 Ubuntu 上的 SFTP 服务器。

我已经安装了 open ssh,并创建了密钥对。

我已经配置了 sshd_config,以仅允许证书认证,并且为每个用户创建了一个具有特定配置的匹配用户块:用户 sftp-service、使用 publikey、无 X11、无隧道等。

我已经创建了 mu 用户,没有登录选项,我根据权限创建了带有 authorized_keys 文件的 .ssh

Chown myuser:myuser /home/mysuser
Chmod 700 /home/myuser
Chmod 600 /home/myusers/.ssh/authorized_keys.

我还创建了一个 chroot 目录

/sftp/chroot/

其中包含所有用户的目录

/sftp/chroot/myuser1
/sftp/chroot/myuser2
/sftp/chroot/myuser3
...

sshd_config 已相应配置。

但是,现在我需要一个可以在所有 /sftp/chroot/ 用户目录中进行读写的 sftp_app 用户。

读取/写入文件并将文件移动到每个用户目录中的 DONE 文件夹中。

目前一切运行良好,但我不知道如何为 sftp_app 用户进行配置。

你可以帮帮我吗?

这是有关我的配置的更多信息:

  1. 所有用户都有自己的登录公钥

==> 用户目录中的密钥:.ssh/authorized_keys

  1. 所有用户都在自己的组中
report_user1:x:1001:1002:N/A,N/A,N/A,N/A,N/A:/home/report_user1:/usr/sbin/nologin
report_user2:x:1002:1003:N/A,N/A,N/A,N/A,N/A:/home/report_user2:/usr/sbin/nologin
report_user3:x:1003:1004:N/A,N/A,N/A,N/A,N/A:/home/report_user3:/usr/sbin/nologin
report_user4:x:1004:1005:N/A,N/A,N/A,N/A,N/A:/home/report_user4:/usr/sbin/nologin
report_user5:x:1005:1006:N/A,N/A,N/A,N/A,N/A:/home/report_user5:/usr/sbin/nologin
  1. 我的 sftp 文件夹配置如下:
     drwxr-xr-x   3 root root 4,0K Sep  5 12:36 sftp

在 /sftp/

     drwxr-xr-x  3 root root 4,0K Sep  5 12:36 MY_COMPANY

在/sftp/我的公司

     drwxr-xr-x  3 root root 4,0K Sep  5 12:36 chroot

在 chroot 内部,所有用户都有以其用户名命名的自己的目录。

     d-wx------ 2 report_user1 report_user1  4,0K Sep 8 09:24 report_user1

因此所有用户都可以访问自己的文件夹,但无法列出文件,而只能在自己的目录中写入文件。

  1. 我的 sshd_config 配置如下:
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
Subsystem       sftp    internal-sftp
Match User report_user1,report_user2,report_user3,report_user4,report_user5
ForceCommand internal-sftp
PasswordAuthentication no
ChrootDirectory /sftp/MY_COMPANY/chroot/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
PubkeyAuthentication yes
  1. 现在,我需要一个用户,应用程序将使用该用户读取所有文件并将数据注入数据库。这就是为什么用户应该以读取模式访问所有用户文件夹。但也应以写入模式访问,因为一旦注入数据库,文件必须重命名为 FILE_NAME.done

数据库不由我管理。应用程序将使用 SFTP 服务器并读取信息,然后将其注入数据库。开发人员将在其服务器上复制 SFTP 文件以注入数据库。在应用程序端成功复制后,他们将文件重命名为 .done,以表明该文件已处理。

SFTP 服务器将接收 .txt 或 .csv 文件。不过,我也想限制为仅此扩展名,但我不知道该怎么做...

问候。

相关内容