强制每个用户 ssh 端口

强制每个用户 ssh 端口

我想允许服务器上的每个用户通过不同的端口进行访问。例如,用户 1 只能通过端口 2201 通过 ssh 进行访问,用户 2 只能通过端口 2202 进行访问。我已经通过编辑“/etc/ssh/sshd_config”并添加两行来允许通过端口 2201 和 2202 进行访问:

Port 2201
Port 2202

现在两个用户都可以通过两个端口(和 22)访问 ssh。

  • 我怎样才能限制它们只能使用自己的端口?

(此外),[root 除外] 用户没有任何自动创建的“~/.ssh/”目录,因此我创建了一个目录并尝试添加一个配置文件和一个 authorized_keys 文件 - 这些似乎没有任何区别。

操作系统是 debian squeeze,提前致谢。

答案1

您必须为每个用户/端口组合创建一个单独的 sshd_config,其中包含(以及通常的配置选项)ListenAddress 和 AllowUsers 关键字。

sshd_config_2201

ListenAddress 0:2201
AllowUsers user1

sshd_config_2202

ListenAddress 0:2202
AllowUsers user2

ETC。

您需要为每个用户运行一次 sshd,并使用开关-f指定单独的配置文件。

答案2

有一个解决方案。您可以使用两个匹配-conditions:一个用于在第一个端口上阻止用户 2,另一个用于在第二个端口上阻止用户 1。应该如下所示:

Match User user2, LocalPort 2201
   DenyUsers user2

Match User user1, LocalPort 2202
   DenyUsers user1

我有一个类似的配置正在运行,并且运行得很好(不用说它是有意义的)。

顺便说一句:结合匹配并且全局允许/拒绝规则不起作用 - 至少对我来说不起作用。

相关内容