在让其他人通过 SSH 登录之前要求本地用户确认

在让其他人通过 SSH 登录之前要求本地用户确认

我想知道是否有办法要求本地用户(通过 GUI 登录)确认/拒绝任何其他身份验证尝试,例如有人尝试通过 SSH 登录?

场景是这样的,我可能希望将我的 SSH 密钥留在用户的计算机上,以便在出现问题时能够调试或帮助他们,但同时我希望他们保持控制,所以我和其他人都没有窃取我的 SSH 密钥将能够登录,至少不需要用户的确认(用户希望我事先告诉他们我会登录,所以如果没有发生,他们会拒绝连接)。

这可能吗?该机器运行的是 Ubuntu 16.10,具有默认的 Unity 桌面环境。

答案1

是的。使用自定义 PAM 模块应该可以实现这一点,因为/etc/pam.d/sshd该模块会使用 Zenity 等向用户发出提示。但这种 QA 并不是一种为您编写整个脚本的格式。

答案2

这是愚蠢的请求,但可以使用指向 shell 包装器的命令,该命令将检查例如文件是否存在,如果该文件存在于服务器上,则会话不会以“退出”结束,并允许 shell 指定SSH_ORIGINAL_COMMAND。

但无论如何...可以创建两个具有相同 UID 但不同用户名的用户帐户。因此,对于真正的用户来说,一切都会像往常一样工作,对于支持人员来说,他会将 /sbin/nologin 作为远程计算机上的默认 shell。如果支持人员需要登录,远程计算机管理员会将其 shell 更改为例如。 bash 和会话会起作用。然后管理员可以踢出支持者并将其 shell 改回 /sbin/nologin。

相关内容