現在使用命令 ssh-keygen -t rsa 生成ssh,默認是以新的格式生成,id_rsa的第一行變成了“BEGIN OPENSSH PRIVATE KEY” 而不在是“BEGIN RSA PRIVATE KEY”,此時用來msyql、MongoDB,配置ssh登陸的話,可能會報 “Resource temporarily unavailable. Authentication by key (/Users/youname/.ssh/id_rsa) failed (Error -16). (Error #35)” 提示資源不可用,這就是id_rsa 格式不對造成的
解決方法(一):
使用 ssh-keygen -m PEM -t rsa -b 4096 來生成
-m 參數指定密鑰的格式,PEM(也就是RSA格式)是之前使用的舊格式
-b:指定密鑰長度;
-e:讀取openssh的私鑰或者公鑰文件;
-C:添加注釋;
-f:指定用來保存密鑰的文件名;
-i:讀取未加密的ssh-v2兼容的私鑰/公鑰文件,然后在標准輸出設備上顯示openssh兼容的私鑰/公鑰;
-l:顯示公鑰文件的指紋數據;
-N:提供一個新密語;
-P:提供(舊)密語;
-q:靜默模式;
-t:指定要創建的密鑰類型
解決方法(二):
將密鑰轉換為PuTTy ppk格式並返回來解決
tempkey的內容:
```
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAA...
-----END OPENSSH PRIVATE KEY-----
```
轉換為ppk格式:
`puttygen tempkey -o tempkey.ppk`
轉換回openssh格式:
`puttygen tempkey.ppk -O private-openssh -o tempkey.oldformat`
tempkey.oldformat的內容:
```
-----BEGIN RSA PRIVATE KEY-----
MIIJJwIBAAKCAgEAzmmS5aA0....
-----END RSA PRIVATE KEY-----
```
參考地址:https://github.com/duplicati/duplicati/issues/3360