2015-02-06 622 views
1

我在写一个连接到我的远程机器的bash脚本,然后运行一些命令,其中一个是vncserver:1,但是这个命令需要输入密码。我怎么能在我的shell脚本中做到这一点? (我只需要运行脚本,不需要输入密码)如何在运行vncserver时自动输入密码:1?

这是我的脚本:

ssh -i $pem -o StrictHostKeyChecking=no -o 'IdentitiesOnly yes' [email protected]$ip -f ' 
      pkill vnc ; 
      vncserver :1 ; 
      ' 
+2

使用['vncpasswd'](http://linux.die.net/man/1/vncpasswd)改为...不需要以明文形式存储密码 – anishsane 2015-02-06 12:09:07

+0

我试过了,但是“vncserver脚本第一次运行vncpasswd你启动一个VNC桌面“。控制台继续要求我输入密码。 – 2015-02-07 01:17:25

+0

'“vncviewer也可以通过-passwd选项使用密码文件”'vncpasswd'不向'vncviewer'提供密码。 'vncpasswd'用于创建密码的票据/散列。然后将vncviewer与生成的密码文件一起使用。再次请检查我在之前的评论中提供的man链接。 – anishsane 2015-02-09 03:33:13

回答

1

感谢所有, 现在是确定:

ssh -i $pem -o StrictHostKeyChecking=no -o 'IdentitiesOnly yes' [email protected]$ip -f ' 
      pkill vnc ; 
      expect -c " 
      spawn vncserver :1; 
      expect -nocase \"password:\" { 
       send \"$pass\r\"; 
       expect -nocase \"Verify:\" { 
        send \"$pass\r\"; 
        expect -nocase \"Would you like to enter a view-only password \(y\/n\)\?\" { 
         send \"n\r\"; 
         expect eof }; }; interact } ; 
      " 
      ' 
相关问题