连接netconf时会引发意外的会话关闭错误

时间:2012-10-16 08:16:20

标签: python ssh openssh ietf-netconf

我正在使用ncclient连接到netconf。但是,当我尝试通过python连接时

“ncclient.transport.errors.SessionCloseError:抛出意外的会话关闭”错误。我正在使用的代码片段在下面给出

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

对此有任何帮助很多。我可以使用公钥连接到远程服务器,因此我没有在连接中提供passwordk

在netconf服务器日志中,我可以看到访问被拒绝的错误。 (即使我尝试使用username和pwd,我也遇到了同样的问题)

2 个答案:

答案 0 :(得分:1)

您没有提供太多信息。

  1. 您使用的是哪个版本的ncclient
  2. 您使用的是哪个版本的Python?
  3. 您要连接到哪个NETCONF实施?这是实际的交换机或路由器,还是运行libnetconfyuma的Linux服务器?
  4. 根据这里的信息,我可以想象出一些错误:

    • paramiko未使用正确的密钥建立SSH传输。
    • 您正在尝试与SSH服务器而不是NETCONF服务器建立NETCONF会话。

    在您的脚本中,使用类似manager.logging.basicConfig(filename='ncclient.log', level=manager.logging.DEBUG)的内容创建一些日志,然后重新运行您的脚本 - 您是否获得了更多信息?

    这是一个老问题,但我希望至少可以指出你正确的方向。

答案 1 :(得分:0)

可能你的机器彼此不认识(比如当你通过正常的ssh连接并获得“未知密钥,真的连接(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)