Ich versuche, ein Java-Programm zu schreiben, das über ssh verbinden und einige Sachen auf einem Server bei der Arbeit (Redhat) tun wird Linux). Meine Box ist Windows. Ich lese über sshj und ich versuche, das Beispiel zur Arbeit zu bringen. Ich habe die meisten Abhängigkeiten durchgearbeitet und jetzt habe ich einen Fehler bei öffentlichen/privaten Schlüsseln und leider weiß ich auch nicht viel (ja, es ist ein perfekter Sturm von Neuling!). Hier ist der Fehler:mit sshj Beispiel ('exec') kämpfen: `ssh-rsa` Host-Schlüssel mit Fingerabdruck nicht überprüfen
Exception in thread "main" net.schmizz.sshj.transport.TransportException: [HOST_KEY_NOT_VERIFIABLE] kann nicht verifizieren ssh-rsa
Host-Schlüssel mit Fingerabdruck 5f:d6:94:00:9e:ec:7e:34:6d:d0:d3:76:df:5e:dd:3d
für myserver
auf Port 22
Hier ist der Code:
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.common.IOUtils;
import net.schmizz.sshj.connection.channel.direct.Session;
import net.schmizz.sshj.connection.channel.direct.Session.Command;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
/** This examples demonstrates how a remote command can be executed. */
public class sshBuddy {
public static void main(String... args)
throws IOException {
final SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
//ssh.addHostKeyVerifier("5f:d6:94:00:9e:ec:7e:34:6d:d0:d3:76:df:5e:dd:3d");
ssh.connect("myserver");
try {
ssh.authPublickey(System.getProperty("myusername"));
final Session session = ssh.startSession();
try {
final Command cmd = session.exec("ping -c 1 google.com");
System.out.println(IOUtils.readFully(cmd.getInputStream()).toString());
cmd.join(5, TimeUnit.SECONDS);
System.out.println("\n** exit status: " + cmd.getExitStatus());
} finally {
session.close();
}
} finally {
ssh.disconnect();
}
}
}
Jede Hilfe wäre willkommen, danke!
Dies ist keine Lösung funktionieren sollte. Sie sagen im Grunde, die Überprüfung des Hostschlüssels als solche zu deaktivieren. – Matiss