2012-02-17 93 views
3

我在網頁中嵌入了一個JSCH SSH Java applet,需要知道是否可以運行腳本(PHP之類的任何語言)來自動登錄和運行命令。我聽說expect4j和java機器人,但看不到任何方式來實現它。請記住,我對Java並不擅長,所以我不知道它的一切。任何幫助表示讚賞。JSCH Java applet

+0

難道你真的想要的小應用程序登錄到您(或他人的)服務器,並執行每次有人訪問您的網頁時都會有命令?然後輸出應該顯示給訪問用戶?或者你真的想要做什麼? – 2012-02-17 20:23:55

+0

它需要使用ssh自動設置密碼登錄。所有這些都在同一個LAN上。它不在任何地方。首先,我驗證IP地址,然後我需要小程序登錄到該IP地址。 – 2012-02-17 21:02:34

+0

如果我可以用另一種方法做到這一點,我也會這樣做。我並不堅持JSCH。我只需要它通過一個網頁。 – 2012-02-17 21:03:49

回答

3

JSch是一個SSH客戶端庫,並且本身只有允許以編程方式控制連接到另一臺服務器。用戶交互必須由庫的用戶在其周圍構建。

網站上提供的JCTerm小程序還包含一個Java GUI形式的終端仿真程序。如果你只想自動執行一些命令(也許在網頁上顯示它的輸出),你可以在服務器端做所有事情,並且不需要applet和它的終端仿真器。 (你可能需要服務器端的一些PHP-Java橋接器,或者一些支持Java的網絡服務器,但是使用Servlet或類似的服務器。)

(如果Web服務器與運行服務器的機器相同在你的命令甚至不需要SSH連接,但可以直接執行這些東西)。

如果服務器不能做任何事情(即「靜態服務器」),一個小程序是要走的路,是。您可以修改JCTerm或從頭開始創建新的小程序(使用JCTerm的連接代碼作爲如何連接到服務器的示例)。

如果您不必擔心局域網內的任何惡意用戶(即Web服務器和用戶之間,SSH服務器無關緊要),則可以嵌入密碼(或最好是公鑰的私鑰驗證)到applet的jar文件中,並將其傳遞給庫以進行連接。 (你還應該包括更方便的檢查服務器的公鑰。)

提供的命令(S)到(而不是ChannelShell),這使得它更容易提供輸入(如有必要)並捕獲輸出。將輸出管道輸入到文本區域,或者簡單地使用綠色/紅色標籤來說明命令是否成功執行。

(我可能會在接下來的日子裏一看這並嘗試去做。沒有答應,雖然)。

+0

那麼用嵌入的用戶名和密碼修改當前applet的jar文件? – 2012-02-17 21:41:38

+0

告訴我,如果我有添加代碼的正確步驟。就像我說的,我對Java並不擅長。將這些行添加到jar文件中的類文件中。將它重新編譯回jar並添加到applet中?這是要走的路嗎? – 2012-02-17 21:43:35