在使用Openssh > 7.8版本生成私鑰時,預設的私鑰格式是OPENSSH格式,而低版本是RSA格式,這導致部分舊版的ssh應用無法識別新的私鑰。
OPENSSH格式開頭:
-----BEGIN OPENSSH PRIVATE KEY-----
舊版的RSA格式開頭:
-----BEGIN RSA PRIVATE KEY-----
我遇到這個問題是因為,在maven中使用wagon-maven-plugin把構建好的jar檔案自動上傳到伺服器,但是報錯:invalid privatekey: [B@7f64bd7
這就是因為私鑰格式無法被java使用的ssh庫識別。可以把格式轉換為舊版格式,命令:
ssh-keygen -p -m pem -f <path>
轉換後會直接覆蓋原檔案,如果想保留原始檔,可以先備份一份。
轉換後就可以了。
參考資料:https://blog.csdn.net/zsf1600594370/article/details/139748118