【问题标题】:Automating VNC authorization process through command line通过命令行自动化 VNC 授权过程
【发布时间】:2011-06-28 14:19:44
【问题描述】:

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

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

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

【问题讨论】:

  • 不知道你在这里问什么。你在写什么应用程序,“我正在接收输入”中的“我”是谁?你在写一个bash脚本吗?本机应用程序?您只是询问 vncviewer 应用程序的命令行参数吗? (哪个vncviewer,有很多吗?)如果有,请查阅其手册页。
  • 看看这个酷炫的https://github.com/trinitronx/vncpasswd.py 工具,它可以生成一个模糊的密码文件,VNC 授权需要。

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


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    -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】:

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

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

      【讨论】:

        【解决方案4】:

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

        echo "password" | vncviewer -autopass host:display
        

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

        echo "test" | vncviewer -autopass 172.16.41.101
        

        【讨论】:

        • @Arihant Nahata,你检查过这个解决方案了吗?如果它以某种方式不起作用或者您找到了自己的答案,请跟进:-)
        • 但是没有-autopass 开关,这不起作用。
        • 如果没有-autopass,请尝试下面使用-passwd的解决方案。
        猜你喜欢
        • 1970-01-01
        • 2017-01-25
        • 2021-06-08
        • 2021-08-30
        • 1970-01-01
        • 2021-12-11
        • 2014-06-30
        • 1970-01-01
        • 2017-10-09
        相关资源
        最近更新 更多