# 問題描述
因涉獵到自動化運維方面,故采用Python的 paramiko 模塊實現服務器之間的管理及命令調用等。實現過程中出現密鑰文件無效的報錯。
# 問題分析
查詢結果得知:
現在通過 ssh-keygen 默認生成的私鑰文件(id_rsa)是新的格式。打開文件可以看到是以 -----BEGIN OPENSSH PRIVATE KEY----- 開頭的,故模塊無法識別。
# 問題解決
生成時指定格式:按以下命令生成 RSA 格式的密鑰對即可
ssh-keygen -m PEM -t rsa
# ssh-keygen參數
-m:參數指定密鑰的格式,PEM(也就是 RSA 格式)是之前使用的舊格式 -b:指定密鑰長度 -e:讀取openssh的私鑰或者公鑰文件 -C:添加注釋 -f:指定用來保存密鑰的文件名 -i:讀取未加密的ssh-v2兼容的私鑰/公鑰文件,然后在標准輸出設備上顯示openssh兼容的私鑰/公鑰 -l:顯示公鑰文件的指紋數據 -N:提供一個新密語 -P:提供(舊)密語 -q:靜默模式 -t:指定要創建的密鑰類型