SSH соединение Java - PullRequest
       17

SSH соединение Java

7 голосов
/ 21 июля 2010

Возможно ли установить SSH-соединение с сервером с Java?

Ответы [ 4 ]

4 голосов
/ 21 июля 2010

Да, я использовал http://sourceforge.net/projects/sshtools/ в приложении Java для подключения к серверу UNIX через SSH, это работало довольно хорошо.

3 голосов
/ 21 июля 2010

jsch и sshJ являются хорошими клиентами.Я бы лично использовал sshJ, так как код задокументирован гораздо более тщательно.

jsch широко используется, в том числе в eclipse и apache ant.У меня также были проблемы с зашифрованными закрытыми ключами jsch и AES, которые требовали повторного шифрования в 3DES, но это мог быть только я.

2 голосов
/ 03 января 2013

Да, это возможно.Вы можете попробовать следующий код:

package mypackage;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.io.*;

public class SSHReadFile
    {
    public static void main(String args[])
    {
    String user = "user";
    String password = "password";
    String host = "yourhostname";
    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.");
        }
    catch(Exception e){System.err.print(e);}
    }
    }
1 голос
/ 22 июля 2010

Чтобы установить соединение с серверами Java, вам нужна реализация SSHD (недостаточно ssh-клиента).Вы можете попробовать Apache SSHD,

http://mina.apache.org/sshd/

Поскольку sshd уже работает на большинстве систем, более простой альтернативой является подключение к серверу через туннель SSH.

...