2012-10-16 132 views
0

我正在使用ncclient連接到netconf。然而,當我嘗試通過python連接連接netconf時會引發意外的會話關閉錯誤

「ncclient.transport.errors.SessionCloseError:意外的會話關閉」錯誤被拋出。我正在使用的代碼片段如下

manager.connect('<servername>',22,username='<username>') 

對此的任何幫助都非常感興趣。我能夠通過使用公鑰連接到遠程服務器,因此我沒有在連接中提供passwordk

而在netconf服務器日誌中,我能夠看到訪問被拒絕的錯誤。 (即使當我用用戶名和密碼嘗試時,我也得到了同樣的問題)

回答

1

您還沒有提供很多信息。

  1. 您使用的是ncclient的哪一個版本?
  2. 您正在使用哪種版本的Python?
  3. 您試圖連接到哪個NETCONF實現?這是一個實際的交換機或路由器,或者像運行libnetconfyuma的Linux服務器?

基礎上的信息在這裏,我可以想像一對夫婦的事情都是錯誤的:

  • paramiko沒有使用正確的密鑰來建立SSH傳輸。
  • 您正試圖與SSH服務器而不是NETCONF服務器建立NETCONF會話。

在你的腳本中,創建一些類似manager.logging.basicConfig(filename='ncclient.log', level=manager.logging.DEBUG)的日誌,然後重新運行你的腳本 - 你會得到更多的信息嗎?

這是一個古老的問題,但我希望我至少能指出你正確的方向。

0

它可能是你的機器不知道對方(就像當你通過普通的ssh連接並獲得「unknown key,really connect(y/n)?」的錯誤)。在這種情況下,默認情況下會話將會不連接要改變這種行爲,使用「unknown_host_cb」參數:

def allowUnknownHosts(host,fingerprint): 
    return True 

self.manager = manager.connect(host=host, port=port, username=user,password=password, unknown_host_cb=allowUnknownHosts) 
相關問題