我能夠使用下面的代碼運行ssh-keygen,但我仍然不清楚如何在SSH-keygen中執行命令。如何使用java運行ssh-keygen.exe中的命令
import java.io.IOException;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.ExecuteWatchdog;
public class ApacheRunSSHKEygen {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
try {
// String line = "AcroRd32.exe /p /h " + file.getAbsolutePath();
String line = "C:\\ExecuteSSH\\ssh-keygen.exe -N";
CommandLine cmdLine = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
//watchdog
executor.setExitValue(1);
ExecuteWatchdog watchdog = new ExecuteWatchdog(60000);
executor.setWatchdog(watchdog);
int exitValue = executor.execute(cmdLine);
}
catch (Exception exc){
System.out.println("error" + exc);/*handle exception*/}
}
}
輸出爲:
SSH-密鑰生成:選項需要一個參數 - N的
用法:SSH-密鑰生成[選項]
選項:
-a試驗用於篩選DH-GEX模量的試驗次數。
-B顯示密鑰文件的bubblebabble摘要。
-b位要創建的密鑰中的位數。
....... .......
-y讀取私鑰文件並打印公鑰。
如果代碼和命令是正確的,則輸出之後應提示輸入密碼。如下所示
生成公共/專用rsa密鑰對。
輸入文件中保存密鑰 (/cygdrive/c/Users/USER/.ssh/id_rsa):
輸入密碼:
夥計們,至少我可以通過鏈接方向文檔來運行cmd命令行。謝謝:) – Learner
輸出結果告訴你做了什麼錯誤:'-N'選項必須跟一個參數。如果您想要命令提示輸入密碼,請不要包含-N。 – VGR
感謝VGR,但爲什麼當我運行ssh-keygen.exe時,它會在 生成公共/專用RSA密鑰對後凍結。 輸入要保存密鑰的文件(/cygdrive/c/Users/USER/.ssh/id_rsa): 有什麼想法? – Learner