【求解】网络自动化之python(3):“超快”的ssh2-python是不是有点邪?

点击查看代码
from __future__ import print_function
import os
import socket
from time import time
import xlwt
from ssh2.session import Session
from ssh2.session import LIBSSH2_HOSTKEY_HASH_SHA1, LIBSSH2_HOSTKEY_TYPE_RSA
from ssh2.knownhost import LIBSSH2_KNOWNHOST_TYPE_PLAIN, \
LIBSSH2_KNOWNHOST_KEYENC_RAW, LIBSSH2_KNOWNHOST_KEY_SSHRSA, LIBSSH2_KNOWNHOST_KEY_SSHDSS
star = time()
host = b'192.168.10.10'
user = 'admin'
# user = os.getlogin()
known_hosts = os.sep.join([os.path.expanduser('~'), '.ssh', 'known_hosts'])
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, 22))
session = Session()
session.handshake(sock)
host_key, key_type = session.hostkey()
server_key_type = LIBSSH2_KNOWNHOST_KEY_SSHRSA \
if key_type == LIBSSH2_HOSTKEY_TYPE_RSA \
else LIBSSH2_KNOWNHOST_KEY_SSHDSS
kh = session.knownhost_init()
_read_hosts = kh.readfile(known_hosts)
print("Read %s hosts from known hosts file at %s" % (_read_hosts, known_hosts))
type_mask = LIBSSH2_KNOWNHOST_TYPE_PLAIN | \
LIBSSH2_KNOWNHOST_KEYENC_RAW | \
server_key_type
kh.checkp(host, 22, host_key, type_mask)
print("Host verification passed.")
session.userauth_password('admin','h3c_test')
channel = session.open_session()
channel.execute('dis transceiver manuinfo interface | include Serial')
channel.wait_eof()
channel.close()
channel.wait_closed()
print("Exit status: %s" % channel.get_exit_status())
size, data = channel.read()
while size > 0:
size, data = channel.read()
config = str(data,encoding='utf-8').split('\n')
print('*' * 8)
for line in config:
print(line.strip())
print('*' * 8)
break
end = time()
print(end-star)
本文来自博客园,作者:段愿仁长九,转载请注明原文链接:https://www.cnblogs.com/gaogaoing/p/15938329.html

浙公网安备 33010602011771号