5

我收到输入为 vnc://172.16.41.101&passwd=test

我想用这个输入做的是:
1. 提取 IP 地址。
2. 提取密码。
3. 使用提供的 ip 和密码启动 vncviewer。
4. 一旦收到输入,所有这些都应该是自动化的。

提取ip和密码很容易。然后我使用提供的 ip 启动 vncviewer,但是如何在不提示用户输入密码的情况下将密码传递给它?

4

4 回答 4

5

假设(通过标签)您正在使用命令提示符中的 vncviewer 程序,我认为您可以执行以下操作:

echo "password" | vncviewer -autopass host:display

使用您的示例: vnc://172.16.41.101&passwd=test

echo "test" | vncviewer -autopass 172.16.41.101
于 2011-08-05T09:59:42.057 回答
4

如果您vncviewer没有该-autopass选项,您可以使用vncpasswd生成可以传递给-passwd选项的密码文件:

vncviewer -passwd <(vncpasswd -f <<<"password") host:display
于 2019-03-05T08:12:18.870 回答
0

-autopass我的vncviewer.

工具都没有vncpasswd(显然是自带的vnc-server)。


xvfb使用,进行演示,在虚拟 X 环境中x11vnc运行程序(如果已安装)。gimp

并在vncviewer不提示输入密码的情况下显示。

x11vnc -storepasswd 1234 /tmp/vncpass
xvfb-run --listen-tcp --server-num 30 --auth-file /tmp/xvfb.auth -s "-ac -screen 0 1920x1080x24" gimp
x11vnc -rfbport 4544 -rfbauth /tmp/vncpass -display :30 -forever -auth /tmp/xvfb.auth
vncviewer -passwd /tmp/vncpass machine:4544

一个班轮:

x11vnc -storepasswd 1234 /tmp/vncpass && xvfb-run --listen-tcp --server-num 30 --auth-file /tmp/xvfb.auth -s "-ac -screen 0 1920x1080x24" gimp & x11vnc -rfbport 4544 -rfbauth /tmp/vncpass -display :30 -forever -auth /tmp/xvfb.auth & vncviewer -passwd /tmp/vncpass $(hostname):4544
于 2021-03-29T19:07:41.393 回答
0

如果没有提供更多细节,很难完美地回答这个问题,例如发布代码/命令/配置以实现我的建议......例如,您需要准确指定哪个 vnc 服务器、客户端、平台每边,等等,等等。

也就是说,如果您可以重新设计所有这些工作方式 - 我建议您根本不要使用密码!

相反,设置一个SSH 隧道,并使用密钥对身份验证来保护它。使用此计划时,您甚至可以删除 VNC 的任何防火墙例外!

如果您这样做,您不仅不必提供密码,而且整个 VNC 系统将更加安全!

于 2021-05-03T12:53:32.953 回答