не удается установить соединение с jsh java

#java #ssh

#java #ssh

Вопрос:

Всем привет, я пытаюсь создать Java-программу, которая будет подключаться к ssh-серверу, а затем считывать имя пользователя и пароль из файла и вводить правильные комбинации в новый файл, однако я получаю сообщение об ошибке com.jcraft.jsch.JSchException: timeout: socket is not established должен ли я что-то загрузить в дополнение к запуску кода? или предполагается, что код сам устанавливает соединение? Спасибо за помощь

 package javaapplication3;
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;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;


/**
 * @author World
 */
public class JavaApplication3 {

    public static void main(String args[]) throws UnsupportedEncodingException {
        String user = "john";
        String password = "123";
        String host = "192.168.100.23";
        int port = 22;
        String remoteFile = "pass.txt";

        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.setTimeout(20000);
            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 inputStream = sftpChannel.get(remoteFile);

            try (Scanner scanner = new Scanner(new InputStreamReader(inputStream))) {
                while (scanner.hasNextLine()) {
                    String line = scanner.nextLine();
                     String[] sArray = line.split(",");
                       System.out.println(sArray[0]); //Just to verify that file is being read
              System.out.println(sArray[1]);
                       if (user == sArray[0] amp;amp; password == sArray[1]){
              
    File file = new File ("C:/Users/Me/Desktop/directory/file.txt");
    PrintWriter printWriter = null;
                        try {
                            printWriter = new PrintWriter ("file.txt");
                        } catch (FileNotFoundException ex) {
                            Logger.getLogger(JavaApplication3.class.getName()).log(Level.SEVERE, null, ex);
                        }
    printWriter.println ("hello");
    printWriter.close ();  
              
           
              }
              else
              {
                System.out.println(line);
              }
                  
                    
                }
            }
        } catch (JSchException | SftpException e) {
            e.printStackTrace();
        }
    }
}
  

Комментарии:

1. Опубликовать трассировку стека

2. Можете ли вы подтвердить, что 192.168.100.23 открыт и прослушивается порт 22? Это похоже на сетевую ошибку, а не на ошибку приложения.

3. нет, он не прослушивается, как мне это настроить?