![VNC 身份验证失败](https://linux22.com/image/1318893/VNC%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5.png)
我尝试从防火墙后面的家用计算机连接到在 CentOs 上运行的 vncserver。我在这台机器上安装了 Win7 和 Ubuntu。我遇到了一个错误:
VNC 连接失败:vncserver 安全故障过多
即使使用正确的凭据登录(我在 CentOs 上重置了密码)我也会收到:身份验证失败。
我发现我必须等待一整天才能重新登录。
这与我尝试以 root 身份登录有关吗?我认为重要的是我必须通过端口 6050 登录到远程 Centos - 其他端口都不适合我。我必须对其他端口做些什么吗?我看到 vncserver 正在监听 5901,如果添加了另一个端口,则监听 5902 - 并且我认为连接已建立,因为不时(很长时间)会出现 passwd 提示符,...对吗?
我已创建了额外的用户 1,以及他的 CentOS 和 VNC 密码,还有用户 2。我这样做:
服务 VNC 服务器启动
并且启动了两个服务器,一个在 :1,另一个在 :2。当我尝试连接到 vncserverIP:1 时,我得到了上述结果,但是当我尝试连接到 vncserverIP:2 时,它说尝试失败。
请帮忙,该怎么办?
另外:如何为了测试目的而禁用此锁定?
答案1
VNC 使用单独的密码系统。它不根据 /etc/passwd 检查密码,而是根据 ~/.vnc/passwd 检查密码,其中包含一个主密码和可选的仅允许查看屏幕的辅助密码。
要设置您的 VNC 密码,请使用密码保护命令。VNC 密码长度必须在 5 到 8 个字符之间 - 超过 8 个字符将被忽略。因此,如果您通过互联网使用 VNC,请选择强随机密码因为攻击者可能会使用具有大量 IP 地址的僵尸网络来绕过锁定,同时破解您的密码。
如果您必须通过互联网使用 VNC,请在随机选择的端口号(而不是 5900)上运行它,以避免在仅覆盖公共端口的端口扫描中检测到。最好通过 SSH 隧道传输 VNC 连接,以保护自己免受窃听和中间人攻击。如果您这样做,您应该将 vncserver 设置为不接受来自互联网的连接,在 SSH 服务上禁用仅密码身份验证,并使用公钥身份验证来防止常见的暴力密码破解尝试。
重新启动 vncserver 应该会重置锁定。手册页没有提到任何完全禁用(已经不够用的)锁定的方法。
答案2
添加已经给出的答案:
你没有在帖子中明确提到这一点,但问题描述暗示你在登录失败次数过多后被阻止。我最近遇到了这个问题,当时一位同事在尝试了太多次错误密码后无法登录。我遇到了这在 SOLVEOPTIMIZED 上发布帖子,解释如何解决它。
您必须定义防火墙规则以允许 VNC 服务器正在使用的端口上的传入连接。VNC 服务器使用端口 5900+N,其中 N 代表每个新实例。因此,假设您的 VNC 服务器实例在端口 5901 上运行,您必须在防火墙设置中允许传入到此端口的连接。您可以使用以下地址找到所有实例的端口号
$ vncserver -l
更改防火墙规则后,您只需等待服务器超时结束,即可再次登录。
或者,如果您不想等待,或者不想弄乱防火墙设置,您可以通过终止所有实例来重新启动 VNC 服务器。这与像您那样重新启动服务不同。您可以通过首先 grep 查找 VNC 的 PID 来进行硬重启
$ pgrep vnc
然后杀死所有实例
$ kill pid
如果 pgrep 返回多个 PID,请确保实际终止所有实例。
答案3
紧密的 VNC 与 Remina 兼容:
它简单易用,非常适合通过 LAN 进行访问。如果您需要更高的安全性,我建议通过 ssh 隧道(或 VPN)进行通信。
sudo apt install tightvncserver
答案4
我遇到了 VNC 锁定问题。我通过安装解决了这个问题gufw防火墙。