我有一个 Java 程序试图在 Linux 机器上运行 shell 命令,具体命令是生成 SSH 密钥。这些密钥不需要密码,所以我尝试使用ssh-keygen -t rsa -b 4096 -f my_key_name -P ""
. 我知道这个命令有效,因为我可以在命令行上运行它就好了。但是当我尝试使用下面的代码运行它时,它会显示passphrase is too short (minimum five characters)
.
我可以将下面的代码更改为:ssh-keygen -t rsa -b 4096 -f my_key_name -P "foobar"
这确实可以与 Java 一起正常工作,但我再次不需要密码。
RunCommandDto runCommandDto = new RunCommandDto();
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec('ssh-keygen -t rsa -b 4096 -f my_key_name -P ""');
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
String output = "";
while ((String sInOut = stdInput.readLine()) != null) {
output += sInOut + "\n";
}
while ((String sErr = stdError.readLine()) != null) {
output += sErr + "\n";
}