Erstellen Sie eine SSH-Verbindung in Java
SSH, auch bekannt als Secure Shell oder Secure Socket Shell, ist ein Netzwerkprotokoll, das es uns ermöglicht, über eine gesicherte Verbindung eine Verbindung zu einem anderen Computer herzustellen.
Das heutige Tutorial behandelt das Öffnen einer SSH-Verbindung und demonstriert die Verwendung von JSch
und Apache Mina SSHD
zum Erstellen einer SSH-Verbindung.
Erstellen Sie eine SSH-Verbindung in Java
Es gibt verschiedene Möglichkeiten, aber die Verwendung von JSch
und Apache Mina SSHD
ist am gebräuchlichsten, also lernen wir sie nacheinander kennen.
Methode 1: Verwenden Sie JSch
, um eine SSH-Verbindung in Java zu erstellen
JSch
ist eine in reinem Java geschriebene Implementierung von SSH2
. Mit dieser Bibliothek können Sie eine Verbindung zu einem SSHD-Server herstellen. Es ermöglicht Ihnen auch die Verwendung von X11-Weiterleitung, Port-Weiterleitung, Dateiübertragung und mehr.
Unser Beispiel unten erstellt eine einfache SSH-Verbindung mit dem JSch
.
Beispielcode:
// Importing necessary packages
import com.jcraft.jsch.*;
import java.io.InputStream;
public class JavaJSCH {
public static void main(String[] args) {
// Organizing all necessary elements for authenticating
String MyHost = "test.rebex.net";
String User = "demo";
String Password = "password";
try {
// Configuring
java.util.Properties Config = new java.util.Properties();
// Disable the 'StrictHostKeyChecking'
Config.put("StrictHostKeyChecking", "no");
// Declaring a JSch object
JSch Jsch = new JSch();
// Creating a session
Session MySession = Jsch.getSession(User, MyHost, 22);
// Setting the session password
MySession.setPassword(Password);
// Configuring the session
MySession.setConfig(Config);
// Connecting the session
MySession.connect();
System.out.println("Successfully Connected !!!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ausgang:
Successfully Connected !!!
Methode 2: Verwenden Sie Apache Mina SSHD
, um eine SSH-Verbindung in Java zu erstellen
Die Apache Mina SSHD
ist eine weitere Bibliothek, um eine Verbindung mit einem Server über die SSH-Protokolle herzustellen. Auch diese Bibliothek ist in reinem Java geschrieben, und die Bibliothek basiert hauptsächlich auf Apache MINA
.
Unser Beispiel unten erstellt eine einfache SSH-Verbindung mit der Apache Mina SSHD
.
Beispielcode:
// Importing necessary packages
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.mina.example.reverser.ReverseProtocolHandler;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
public class JavaSSHD {
// Specifying the PORT
private static final int PORT = 8080;
public static void main(String[] args) throws Exception {
// Creating an acceptor object
NioSocketAcceptor TheAcceptor = new NioSocketAcceptor();
// Preparing the configuration
TheAcceptor.getFilterChain().addLast("logger", new LoggingFilter());
TheAcceptor.getFilterChain().addLast(
"codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
// Binding all necessary things
TheAcceptor.setHandler(new ReverseProtocolHandler());
TheAcceptor.bind(new InetSocketAddress(PORT));
System.out.println("Listening on port " + PORT);
}
}
Das oben geteilte Beispiel veranschaulicht eine grundlegende Ebene eines Serverprogramms, das eine Liste des Ports bereitstellt. Wenn Sie den oben freigegebenen Beispielcode ausführen, erhalten Sie die folgende Ausgabe in Ihrer Konsole.
Ausgang:
Listening on port 8080
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn