簡體   English   中英

如何從 java 程序中的命令行參數獲取 ssh 關鍵數據?

[英]How can I get an ssh key data from a command line argument in java program?

我正在嘗試從命令行獲取 ssh 私鑰數據。

./myProgram --prvKey '-----BEGIN RSA PRIVATE KEY-----\nxxx\n-----END RSA PRIVATE KEY-----\n'

在我的 Git class 中,我使用如下關鍵數據:

protected JSch createDefaultJSch(FS fs) throws JSchException {
    String prvKeyData = Main.getPrvKeyData();
    System.out.println(prvKeyData);
    JSch jSch = super.createDefaultJSch(fs);
    jSch.addIdentity("monitoring-configs", prvKeyData.getBytes(), null, "passphrase".getBytes());
    return jSch;
      }

但這會因無效的 ssh 密鑰錯誤消息而失敗。

我檢查了直接將該字符串放入代碼時它是否運行良好。

而且我還檢查了System.out.println結果與我給出的輸入完全相同(包含\n )。

我猜想 bash 用反斜杠做了一些事情,所以在我的 Java 程序中, \n沒有被正確理解。

我該如何調試和解決這個問題?

如果您可以更改輸入字符串,只需使用 enter 而不是 '\n' 序列。

/myProgram --prvKey '-----BEGIN RSA PRIVATE KEY-----
xxx
-----END RSA PRIVATE KEY-----
'

然后 java 參數將包含新行而不是字符串“\n”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM