[英]Accessing JMX in production via SSH tunnel using JSch
我正在嘗試使用JMX自動執行某些操作。
它適用於開發環境。 但是當談到受防火牆保護的生產時,我需要建立一個SSH隧道,然后才能訪問JMX控制台。
早些時候,我使用putty或ssh創建隧道並在本地運行我的java程序。 由於我們使用1-2主機,因此更容易。 現在它變成了10個主機。 現在我不想每次都創建隧道並斷開連接並運行程序。
我想要做的是,使用JSch自動創建SSH隧道,並將JMX與java程序連接。 我試圖這樣做,但它不起作用。
我收到java.rmi.ConnectException:連接拒絕主機:localhost; 嵌套異常是:java.net.ConnectException:連接被拒絕:連接
有可能這樣做嗎?
你為什么不使用Runtime.exec()
來啟動ssh? 例:
public static void main(String[] args) {
String[][] data = new String[][]{new String[]{"user@server1", "2000:server1:30"},
new String[]{"user2@server4", "2000:server4:30"}};
Process[] processes = new Process[data.length];
for (int i=0; i<data.length; i++) {
processes[i] = Runtime.getRuntime().exec("ssh", data[i][0], "-L", data[i][1], "-N");
}
//do something else, for example, wait for user interaction here
for (int i=0; i<data.length; i++) {
processes[i].destroy();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.