SSH-Verbindung zu einem anderen Computer über eine selbst erstellte Anwendung, die mit Java6 kompiliert wurde.
Wenn Sie die API von JSch aufrufen und eine SSH-Verbindung zu einem anderen Computer herstellen, finden Sie diese in JSch. Wird eine Ausnahme auslösen.
Java 6 jetzt? Sie könnten das denken, aber es gab Umstände, unter denen ich es benutzen musste.
Wenn es um SSH-Verbindungen in Java geht, wird anscheinend häufig die Bibliothek JSch von JCraft verwendet. .. Es ist im Mevan Repository registriert und kann auch von der Website JCraft heruntergeladen werden. Ich werde.
Deshalb habe ich sofort versucht, es zu benutzen. Der Code sieht einfach so aus:
MainClass.java
package sample.sshconnect;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
public class MainClass {
private static final String USER = "user_sample";
private static final String HOST = "111.222.333.444";
private static final String PASSWORD = "password_sample";
private static final int PORT = 22;
public static void main(String[] args) {
//Verbindung zum Server herstellen und trennen
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession(USER, HOST, PORT);
} catch (JSchException e) {
e.printStackTrace();
return;
}
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(PASSWORD);
try {
session.connect();
} catch (JSchException e) {
e.printStackTrace();
return;
}
session.disconnect();
}
}
Geben Sie in pom.xml`` 1.6
für maven-compiler-plugin
an.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SampleSshConnect</groupId>
<artifactId>SampleSshConnect</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
</dependencies>
</project>
Wenn ich es ausführe, werden die folgenden Informationen an die Konsole ausgegeben.
com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
at com.jcraft.jsch.Session.connect(Session.java:565)
at com.jcraft.jsch.Session.connect(Session.java:183)
at sample.sshconnect.MainClass.main(MainClass.java:27)
Anscheinend gibt es eine Ausnahme in "session.connect ();".
Ändern Sie also pom.xml
, um die im maven-compiler-plugin
angegebene Version in 1.7
zu ändern.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SampleSshConnect</groupId>
<artifactId>SampleSshConnect</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
</dependencies>
</project>
Wenn ich es starte, wird nichts auf der Konsole angezeigt.
Dies bedeutet, dass beim Kompilieren mit Java 7 die SSH-Verbindung erfolgreich ist und Wenn Sie mit Java6 kompilieren, wird beim Herstellen einer Verbindung zu SSH eine Ausnahme angezeigt.
Es wurde noch keine Möglichkeit gefunden, die Ausnahme zu vermeiden. Ich frage mich, ob etwas getan werden kann.
Recommended Posts