2015-02-06 606 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 } ; 
      " 
      ' 
相關問題