如果客户端在建立 SSH 连接后的某个时间范围(1-2 秒)内没有执行命令(例如使用 -N),我希望从服务器终止该命令。
不幸的是,在使用 运行时,ForceCommand
以 和authorized_keys
为前缀的命令也不会执行-N
,但客户端仍然可以请求远程转发(-R
)从而占用服务器上的端口。
我想避免这种情况,但在键前加上前缀no-port-forwarding
不是一个选择,因为如果他们运行我想允许端口转发的命令。在这种情况下,我的强制命令会执行,我可以进行验证以确保它被允许。
我唯一的选择是有一些外部进程监视器sshd
实例并检查它们是否有任何子进程(例如 shell 或执行的命令)?
答案1
如果您说这-N
总是有效,那么除了让外部进程监视 sshd 的子进程之外没有其他选择。我检查了 sshd_config 的手册页,没有找到任何可以帮助您的选项。此外,它没有指定是否-N
应该使用ForceCommand
。