基于密钥对的 VNC 身份验证

基于密钥对的 VNC 身份验证

我在旅途中使用 RealVNC 远程控制我的计算机。但每次都必须输入访问密码,这让我很烦。能否让 RealVNC(或任何其他 VNC 实现)使用我的密钥对而不是密码?

答案1

我经常使用的一种简单方法是将 VNC 设置为完全不需要密码。但我还将其设置为仅监听环回接口 (127.0.0.1) 上的连接。

然后我只需创建一个到我的盒子的 SSH 隧道并使用 SSH 端口转发进行身份验证和远程访问。

答案2

如果你支付企业费用假设您的所有机器都在一个域中,您可以让 RealVNC 使用您当前的登录凭据,而不是单独的用户名和密码,方法是使用单点登录选项。

来自文档:

单点登录

单点登录身份验证机制扩展了系统身份验证,可使用最初提供的登录客户端计算机的凭据自动将连接用户身份验证到任何主机计算机上的任何 VNC 服务器实例。要实现此功能,所有主机计算机都必须位于域中,并且所有 VNC 服务器实例都必须指定单点登录。请注意,此功能不适用于 VNC Viewer for Java;Web 浏览器用户必须始终提供用户名和密码才能连接。

答案3

Tigervnc 有一个选项可以从服务器传递 passwd 文件。因此,在客户端上从服务器复制该文件(使用带密钥对的 ssh)可以无需输入密码即可登录:

scp host:.vnc/passwd ~/.vnc/passwd.host vncviewer passwd=~/.vnc/passwd.host host:5901

文档提到--passwd但只有版本 1.9.0passwd有效。

与无密码、仅本地访问解决方案不同,这可防止同一主机上的其他用户连接到 vncserver。但它可以与仅本地访问相结合,以限制谁可以尝试暴力破解 vncserver。

注 1:文档说文件需要位于同一文件系统上,但复制对我来说是可行的。不确定 passwd 文件是否曾经更改过,是否需要再次复制。——从我的观察来看,情况似乎并非如此。

注2:这并不是真正的密钥对,因为它似乎是存储在双方的密码的哈希值。

相关内容