Мне нужно подключиться к другому серверу после того, как я вошел на сервер замазки, используя код Java, и мне нужно загружать файлы со второго сервера после того, как я подключился.У кого-нибудь есть код.
Как только появляется экран сервера замазки, я ввожу имя пользователя и пароль, затем я передаю команду "ssh servername", затем мне нужно ввести да, чтобы появился вопрос.
После того, как все вышеперечисленное сделано, мне нужно перейти в разные папки и загрузить файлы на сервер 1.
Я использовал приведенный ниже код для подключения к серверу 1, и он подключился. После этого я не уверен, что смогу перейти на сервер 2.
Я получаю сообщение об ошибке, как показано ниже, при попытке удаленного сервера через другой сервер.Ошибка и код, который я ввел ниже
Ошибка:
Exception in thread "main" com.jcraft.jsch.JSchException: connection is closed by foreign host
at com.jcraft.jsch.Session.connect(Session.java:236)
at com.jcraft.jsch.Session.connect(Session.java:150)
at putty.putty.main(putty.java:42)
Код, который я использовал:
import java.io.IOException;
import java.io.InputStream;
import java.util.Vector;
import org.apache.commons.io.IOUtils;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class putty {
public static String user = "username";
public static String host = "server1.server.net";
public static String password = "Password";
public static String secondpassword = "Password";
public static String tunnelRemoteHost = "server2.server.net";
public static void main(String[] args) throws IOException, JSchException, SftpException {
StringBuilder outputBuffer = new StringBuilder();
int port = 22;
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
int forwardPort = 2222;
session.setPortForwardingL(forwardPort, tunnelRemoteHost, 22);
Session secondSession = jsch.getSession(user, "localhost", forwardPort);
secondSession.setPassword(secondpassword);
secondSession.setConfig("StrictHostKeyChecking", "no");
secondSession.connect();
session.openChannel("sftp");
// now we're connected to the secondary system
Channel channel = secondSession.openChannel("sftp");
channel.connect();
ChannelSftp channelSftp = (ChannelSftp)channel;
channel.disconnect();
session.disconnect();
System.out.print(outputBuffer.toString());
}
}
Я использую последнюю версию jsch jar 0.1.55.Может кто-нибудь заглянуть и дать мне то, чего мне здесь не хватает.