是否有可能杀死未运行命令的SSH连接(例如-N)

如果客户端在build立SSH连接后的一段时间(1-2秒)内没有执行一个命令(例如-N),我想从服务器终止它。

不幸的是,在使用-N运行时, ForceCommandauthorized_keys -prefixed命令不会执行,但客户端仍然可以请求远程转发( -R )捆绑服务器上的端口。

我想要防止这种情况下,但前缀no-port-forwarding的密钥不是一个选项,因为如果他们运行一个命令,我想允许端口转发。 在这种情况下,我的强制命令执行,我可以做validation,以确保它是允许的。

我唯一的select有一些外部进程监视sshd实例,并检查他们是否有任何subprocess(如shell或执行的命令)?

如果你说-N始终工作,那么除了有外部进程监视sshd的孩子之外,没有别的select。 我检查了sshd_config的手册页,没有find任何可以帮助你的选项。 也没有指定-N是否应该与ForceCommand工作。