【发布时间】:2015-10-21 22:54:08
【问题描述】:
我是 JAVA 新手。 我试图编写一个将执行下一步的应用程序 - 打开与 UNIX 服务器的 ssh 连接,并使用私钥从该服务器连接到另一台服务器。
要连接到第一台服务器,我使用的程序如下:
public static void main(String args[])
{
String user = "john";
String password = "mypassword";
String host = "192.168.100.23";
int port=22;
try
{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Crating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
System.out.println("SFTP Channel created.");
InputStream out= null;
out= sftpChannel.get(remoteFile);
BufferedReader br = new BufferedReader(new InputStreamReader(out));
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
br.close();
}
catch(Exception e){System.err.print(e);}
}
而且效果很好。但是当我尝试使用相同的代码连接到第二个时,这不起作用,因为应用程序尝试创建一个全新的连接而不使用已经创建的连接。
有人知道我怎样才能让应用程序使用已经创建的连接吗?
谢谢。
【问题讨论】:
标签: java ssh connection sftp jsch