在我的 centos 机器上的多个端口上设置 sftp

在我的 centos 机器上的多个端口上设置 sftp

我有一个Centos机器版本centos-release-7-9.2009.1.el7.centos.x86_64。我正在尝试更改 sftp 端口,目前是默认港口22. 我能够跟上这篇文章https://www.thegeekdiary.com/how-to-configure-separate-port-for-ssh-and-sftp-on-centos-rhel/并能够设置sftp 到端口 22,ssh 到端口 2222。我有现有用户正在使用该机器,此更改将影响他们。我am trying to set sftp on both 22 and 2222 port and keep ssh on port 22。是否可以通过任何方式做到这一点。我在网上搜索过,但没有找到太多关于此的帮助。

在我的sshd_配置我更新了以下内容:

Port 22
#2222 added as extra argument to change sftp port
Port 2222

# override default of no subsystems
#Subsystem       sftp    /usr/libexec/openssh/sftp-server
#custom value to change sftp port
Subsystem sftp internal-sftp

#extra arguments for port change
Match LocalPort 22
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

在我的sshd_配置文件,如果我只添加以下内容:

Port 22
#2222 added as extra argument to change sftp port
Port 2222

并且没有上述其他更改,我能够在两个端口上连接 ssh,但只能在 22 上连接 sftp。我正在寻找另一种方法,在 22 上使用 SSH,在 22 和 2222 上都使用 sftp

答案1

Match是的,这是可能的。端口的简单条件你应该只使用 2222 端口 - 这是你想要 sftp 的端口仅有的

在另一条规则中,你不仅需要指定端口(这也会踢出你的常规用户),而且另一个条件(如果某些用户或组不被允许使用除了 sftp 之外的其他可能性)。

正如手册页明确指出的那样:“如果 Match 行上的所有条件都得到满足,则以下几行上的关键字将覆盖配置文件全局部分中设置的关键字,直到出现另一个 Match 行或文件末尾。”

相关内容