所以我試圖找出一種方法來執行命令並使用C#從一個非常標準的SSH連接讀取數據。唯一的挑戰是我無法直接連接到服務器,如果願意的話,我必須通過另一個SSH連接,比如某種代理。SSH通過另一個SSH連接
到目前爲止,我一直在爲此嘗試各種API。 SharpSSH等。這裏的情況:
我 - > SSH服務器 - > SSH目標服務器
我需要能夠執行和實時閱讀的東西,因爲這些命令我把會警惕根據結果我得到。
到目前爲止,我得到的最接近的是我一直建立連接,但在登錄超時結束之前,我沒有從目標服務器獲取任何信息。基本上,我連接並登錄到「代理」服務器,我執行「ssh targetserver」,然後整個事情靜默大約30秒。那時,我一次收到很多數據。目標服務器的登錄提示信息以及說明我花了太長時間登錄的消息。然後,目標服務器關閉連接,以某種方式導致「代理」服務器刷新結果,以便我可以看到發生了什麼。
我試着只是盲目地按照正確的順序執行命令,但是好像API一旦連接到目標服務器後就不願意繼續執行命令行。在超時達到之前,它不會採取任何行動。
只是爲了澄清;我無法以任何方式修改服務器。這是設置。但是我知道這是可以做到的,因爲通過Putty手動完成是沒有問題的。我正在嘗試在我的C#應用程序中重新創建Putty在這裏執行的操作。在Putty中,我只需輸入「ssh server」,輸入我的憑據,並執行另一個「ssh服務器」。我想這樣做的原因,僅僅是因爲要做很多日常工作。相同的東西一遍又一遍,當它被累加起來需要相當多的時間。
我不確定這是API的問題,還是有一些標誌或任何我可以放入我的命令使其工作。我已經閱讀過有關L這樣的標誌,但它似乎並不適合我。這兩臺服務器通過使我們輸入我們的用戶名和密碼膩子(或其他認證用戶
任何人都知道如何做到這一點?(最好是使用C#和SharpSSH。)
我也是在Java中試過這個,我得到了完全相同的問題有-o ServerAliveInterval