2011-03-01 155 views
1

用的paramiko,可以設置一個SSH密鑰回調是這樣的:的paramiko:驗證和永久添加SSH主機密鑰

def someCallbackFunction(client, hostname, key): 
    ... 

client = SSHClient() 

client.load_system_host_keys() 
client.set_missing_host_key_policy(someCallbackFunction) # <-- 
client.connect(...) 

回調得到SSH客戶端實例,主機名和paramiko.RSAKey實例作爲參數,如果密鑰被接受,則必須返回,否則返回異常。

如何使用提供的參數驗證SSH密鑰?例如,我如何獲得RSA指紋,以便用戶可以比較它?是否有可能讓Paramiko永久添加密鑰到「known_hosts」?

回答

0

我無法找到寫入(打開)SSH的known_hosts文件的方式,但由於存在不同的變體(截至PuTTY源代碼),我將保留這一點,並將接受的主機寫入我自己的程序配置。

關於指紋,我發現Paramiko已經提供了這個:PKey.get_fingerprint。爲了獲得人類可讀的指紋,只需申請binascii.hexlify即可。