SSH:如何根据密钥选择性地允许本地端口转发并禁止远程端口转发(反之亦然)

SSH:如何根据密钥选择性地允许本地端口转发并禁止远程端口转发(反之亦然)

在 中sshd_config,可以写入类似PermitListen none和 的内容PermitOpen host:port,从而允许本地端口转发,同时禁止远程端口转发(反之亦然)。

问题:如何在authorized_keys文件中执行相同操作,以便在每个键的基础上实现相同的效果?

写作

restrict,port-forwarding,permitlisten="*:<port>" ssh-ed25519 AAAA...

并不阻止客户端将本地端口转发到 部分当前允许的任何主机/端口组合PermitOpensshd_config因为port-forwardingAllowTcpForwarding与不同sshd_config)是没有选择性的并且始终启用本地和远程转发。

编写以下任何一项

restrict,port-forwarding,permitlisten="*:<port>",permitopen=none ssh-ed25519 AAAA...
restrict,port-forwarding,permitlisten="*:<port>",permitopen=none:none ssh-ed25519 AAAA...
restrict,port-forwarding,permitlisten="*:<port>",permitopen="none" ssh-ed25519 AAAA...
restrict,port-forwarding,permitlisten="*:<port>",permitopen="none:none" ssh-ed25519 AAAA...

导致在身份验证期间连接被悄悄断开,这表明sshd文件authorized_keys语法无效。

答案1

_是主机名的无效字符。我使用以下内容:

restrict,port-forwarding,permitlisten="*:<port>",permitopen="_invalid_hostname_to_restrict_:1" ssh-ed25519 AAAA...

我已经检查了 OpenSSH 8.4p1 源代码,但没有选项或关键字可以仅禁用远程端口转发。

相关内容