无法使用paramiko访问netconf

时间:2016-10-01 19:16:33

标签: python sockets network-programming paramiko ietf-netconf

我是python的新手,正在探索paramiko模块。我希望使用paramiko模块访问(使用N​​ETCONF)我的路由器。

以下是我正在尝试的代码: -

import paramiko
import socket

ROUTER_IP='192.168.2.101'
USERNAME='test'
PASSWORD='test'

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

CLOSE = """
<rpc>
  <close-session/>
</rpc>"""

SOFT_ADD = "***RPC Operations***" 

socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.connect((ROUTER_IP, 830))

trans = paramiko.Transport(socket)
trans.connect(username=USERNAME, password=PASSWORD)

#CREATE CHANNEL FOR DATA COMM
ch = trans.open_session()
name = ch.set_name('netconf')

#Invoke NETCONF
ch.invoke_subsystem('netconf')

#SEND COMMAND
ch.send(SOFT_ADD)

#Recieve data returned
data = ch.recv(2048)
while data:
   data = ch.recv(1024)
   print data,
   if data.find('</rpc-reply>') == 0:
     #We have reached the end of reply
     ch.send(CLOSE)

ch.close()
trans.close()
socket.close()

但我每次尝试都会收到以下错误。

Traceback (most recent call last):
  File "ssh_netconf_temp.py", line 34, in <module>
    socket.connect((ROUTER_IP, 830))
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused

路由器具有简单的ssh配置,没有阻止ACL或端口。我能够在没有python的情况下建立netconf会话。

0 个答案:

没有答案