SSH connection with Java

前端 未结 8 1496
眼角桃花
眼角桃花 2020-12-01 01:40

How can I connect to an SSH server in Java? I don\'t need/want a shell. I just want to connect to the SSH server and get the content of, say, file.txt. How can

8条回答
  •  鱼传尺愫
    2020-12-01 02:20

    Use JSch

    import com.jcraft.jsch.*;
    
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Scanner;
    
    /**
     * @author World
     */
    public class SSHReadFile {
    
        public static void main(String args[]) {
            String user = "john";
            String password = "mypassword";
            String host = "192.168.100.23";
            int port = 22;
            String remoteFile = "/home/john/test.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.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();
                        System.out.println(line);
                    }
                }
            } catch (JSchException | SftpException e) {
                e.printStackTrace();
            }
        }
    }
    

    output:

    Establishing Connection...
    Connection established.
    Crating SFTP Channel.
    SFTP Channel created.
    This is content from file /home/john/test.txt
    

提交回复
热议问题