【发布时间】:2018-07-26 08:10:26
【问题描述】:
帮助 Jsch,通过 JumpHosts 执行命令:我需要在无法直接访问的服务器中获得 SSH 访问权限,因为中间有一个 SSH 跳转服务器。我使用 JSCH 库,但文档(JumpHosts.java 示例)是关于如何获取服务器文件目录的。大家有什么建议
public static void main(String[] arg){
try{
JSch jsch=new JSch();
String host="host ip";
if(arg.length>0){
host=arg[0];
}
String user = "username";
session=jsch.getSession(user, host, 22);
String passwd = "password";
session.setPassword(passwd);
UserInfo ui = new MyUserInfo(){
public void showMessage(String message){
JOptionPane.showMessageDialog(null, message);
}
};
session.setUserInfo(ui);
session.connect(30000); // making a connection with timeout.
channel=session.openChannel("shell");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect(3*1000);
}
catch(Exception e){
System.out.println(e);
}
【问题讨论】:
-
您是否能够使用普通的 ssh 客户端(如 putty 或 openssh)连接到服务器?
-
也许可以试试using something like this?
-
是的,我可以使用典型的 ssh 客户端跳转到第二台主机。问题来自 Java 应用程序:我可以从应用程序连接并从 server1(跳转服务器)获取提示,但我不知道如何在第二台服务器上连接或执行命令
-
马特克拉克:谢谢,我要试试
-
使用SSH客户端的时候怎么做?是什么阻止您使用 JSCH 做同样的事情?