2012-09-20 83 views
1

我想登錄到遠程計算機並執行shell腳本。該腳本將在運行時提示輸入用戶名和密碼。通過JSCh將密碼傳遞給shell腳本

用JSch可以做到這一點嗎?

+0

你對遠程計算機有什麼權利?你是否以root身份登錄?我們可以假設遠程計算機是在Linux? –

+0

如果您嘗試在刪除Linux時執行「sudo su」命令,那麼您將遇到JSch問題。另請參閱http://stackoverflow.com/questions/8441637/to-run-sudo-commands-on-a-ec2-instance –

+0

爲了更好地理解:如果您在計算機上連接,是否需要額外運行shell腳本,顯示您提示輸入登錄數據和密碼? – reporter

回答

0

有多個點在這裏考慮:

  • 要連接到服務器,您將使用JSch會話,然後一個exec信道(即ChannelExec),給腳本的名稱命令。

  • 然後腳本會嘗試讀取密碼。您必須將其傳遞到通道的輸出流,該流與腳本的輸入流連接。

  • 該腳本可能會嘗試不從標準輸入讀取,而是從終端讀取。如果是這樣,您需要使用方法setPty(true)啓用「僞終端」,甚至可以使用其他方法設置終端類型。當然,這也取決於支持這個的SSH服務器,但是如果你可以使用其他SSH程序來做到這一點,它應該可以工作。

+0

你好,請你分享一個樣本獲取密碼作爲輸入。 – Prasad

相關問題