是否可以终止未运行命令的 SSH 连接(例如使用 -N)

是否可以终止未运行命令的 SSH 连接(例如使用 -N)

如果客户端在建立 SSH 连接后的某个时间范围(1-2 秒)内没有执行命令(例如使用 -N),我希望从服务器终止该命令。

不幸的是,在使用 运行时,ForceCommand以 和authorized_keys为前缀的命令也不会执行-N,但客户端仍然可以请求远程转发(-R)从而占用服务器上的端口。

我想避免这种情况,但在键前加上前缀no-port-forwarding不是一个选择,因为如果他们运行我想允许端口转发的命令。在这种情况下,我的强制命令会执行,我可以进行验证以确保它被允许。

我唯一的选择是有一些外部进程监视器sshd实例并检查它们是否有任何子进程(例如 shell 或执行的命令)?

答案1

如果您说这-N总是有效,那么除了让外部进程监视 sshd 的子进程之外没有其他选择。我检查了 sshd_config 的手册页,没有找到任何可以帮助您的选项。此外,它没有指定是否-N应该使用ForceCommand

相关内容