2011-01-13 4 views
1

Ich versuche, eine Web-App zu erstellen, die mehrere Service-Status, Server-Statistiken usw. überprüfen wird. Ich fand, dass http://www.jcraft.com/jsch/ scheint ziemlich nett ssh Java-Implementierung. Aber jedes Mal, wenn ich mich in zu-Server anmelden bin aufgefordert RSA-Schlüssel Fingerabdruck wie dies zu bestätigen:Java ssh Client

alt text

Wie kann ich dies außer Kraft setzen, um immer zu bestätigen ja ohne Eingabeaufforderungen? Ich möchte den ganzen Schwung Teil entfernen, möchte ich, ich aus den Beispielen auf jscraft.com zur Verfügung hat wie in diesem Beispiel Code ohne Interaktion machen:

http://www.jcraft.com/jsch/examples/Exec.java

mit Schaukel Ich bin nicht so vertraut und mit Java im Allgemeinen.

Antwort

3
public class ManoUserInfo implements UserInfo { 

String passwd; 

public void setPassword(String pass) { 
    passwd = pass; 
} 

@Override 
public String getPassphrase() { 
    return null; 
} 

public String getPassword() { 
    return passwd; 
} 

public boolean promptPassword(String arg0) { 
    return true; 

} 

public boolean promptPassphrase(String arg0) { 
    return true; 
} 
//this method responsible for that message, so just make it return true 
public boolean promptYesNo(String arg0) { 
    // Object[] options = {"yes", "no"}; 
    /* int foo = JOptionPane.showOptionDialog(null, 
      arg0, 
      "Warning", 
      JOptionPane.DEFAULT_OPTION, 
      JOptionPane.WARNING_MESSAGE, 
      null, options, options[0]);*/ 
    return true; 
} 

public void showMessage(String message) { 
    JOptionPane.showMessageDialog(null, message); 
} 
1

Sie müssen verstehen, warum diese Meldung oben knallt.

SSH ist ein sicherer Dienst, was bedeutet, dass die Identität des Clients und die Identität des Servers garantiert sind. Um sicherzustellen, dass Sie tatsächlich den Server erreicht haben, den Sie erreichen möchten (wie es möglich ist, dass Sie sich ohne Ihr Wissen mit dem falschen Server verbinden, Google DNS-Cache-Poisoning), zeigt der Client den empfangenen Servernamen und den Fingerabdruck an. Diese Werte identifizieren den Server. Sie sollten schauen, ob dies tatsächlich der Fingerabdruck ist, den Sie auf dem Server generiert haben, indem Sie den Fingerabdruck über einen sicheren Kanal (z. B. per Telefon mit dem Serveradministrator) vergleichen.

Nachdem dies gesagt wurde, speichern normale SSH-Clients Ihre Entscheidung, den Namen des Fingerabdrucks/Servers zu akzeptieren, und fragen nicht erneut. Es scheint, dass Ihr Client nicht. Sie haben also entweder die Möglichkeit, den Quellcode zu ändern (wenn er unter einer offenen Lizenz lizenziert ist) oder automatisch nach "Ja" zu klicken, wenn diese Frage auftaucht (dies kann mit Toolkits wie Autoit 3 mit einem sehr kurzen Skript erreicht werden)).

+0

'oder einen Weg finden, automatisch mit„Ja“drücken, wenn diese Frage erscheint (das mit Toolkits wie Autoit 3 mit einem sehr kurzen Skript erreicht werden kann) .' Dies ist der Teil ich interessiert bin, Ich lese alles andere in Ihrem Beitrag das ist, warum ich frage nach einer Antwort Ich weiß nicht, wie man das macht – London

+0

Mit einer Software wie "Autoit 3" können Sie Windows-Aufgaben wie Ausführen oder Schließen von Anwendungen, Tasten drücken, bewegen die Maus und so weiter. Es ist mit einer sehr einfachen Skriptsprache programmiert, die in 10 Minuten erfasst werden kann. Schau es dir unter http://www.autoitscript.com/autoit3/index.shtml an. – 0xCAFEBABE