我收到的输入为vnc://172.16.41.101& passwd = test
我想用这个输入做的是:
1.提取IP地址
2.提取密码
3.使用提供的ip和密码启动vncviewer
4.一旦收到输入,所有这一切都应该自动化。
提取ip和密码很容易。 然后我用提供的ip启动vncviewer,但是如何在不提示用户输入密码的情况下将密码传递给它?
答案 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
)。
使用 xvfb
、x11vnc
的演示,在虚拟 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 系统也会更加安全!