通过命令行自动执行VNC授权过程

时间:2011-02-16 19:02:05

标签: linux terminal command-prompt vnc vnc-viewer

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

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

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

4 个答案:

答案 0 :(得分:4)

假设(通过标签)您在命令提示符下使用vncviewer程序,我认为您可以这样做:

echo "password" | vncviewer -autopass host:display

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

echo "test" | vncviewer -autopass 172.16.41.101

答案 1 :(得分:1)

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

vncviewer -passwd <(vncpasswd -f <<<"password") host:display

答案 2 :(得分:0)

-autopass 在我的 vncviewer 版本中不可用。

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


使用 xvfbx11vnc 的演示,在虚拟 X 环境中运行程序 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

答案 3 :(得分:0)

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

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

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

如果这样做,不仅不需要提供密码,整个 VNC 系统也会更加安全!