我正在使用python脚本通过ssh连接到本地Cisco控制器。我正在使用Windows 10,python 3.7并使用最新的paramiko库。我相信我的脚本建立了连接,但似乎无法正确输入用户名和密码。
SSH code
import paramiko
import time
import getpass
import os
from host_file import network_devices
from config_file import host_conf
UN = input("Username : ")
PW = getpass.getpass("Password : ")
# For loop to specify number of hosts
for ip in network_devices:
print (ip)
ssh1 = paramiko.SSHClient()
ssh1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh1.connect(ip, port=22, username=UN, password=PW)
remote = ssh1.invoke_shell()
remote.send('terminal length 0\n')
time.sleep(1)
#loop allows you to specify number of commands
for command in host_conf:
remote.send(' %s \n' % command)
time.sleep(5)
buf = remote.recv(65000)
print (buf)
f = open('sshlogfile0001.txt', 'ab')
f.write(buf)
f.close()
ssh1.close()
Host file
network_devices = ['10.100.10.2','10.100.100.1']
config_file
host_conf = ['config paging disable','show time', 'exit']
这些是脚本打印回的输出,它们来自多次运行。
(Cisco控制器) 用户:终端长度0 密码:*********** 用户:退出 密码:
(Cisco控制器) 用户:终端长度0 密码:*********** 用户:退出 密码:
(Cisco控制器) 用户:终端长度0 密码:*********** 用户:退出 密码:
(Cisco控制器) 用户:终端长度0 密码:*********** 用户:退出 密码:
这是在cmd本身上显示的输出
b'\ r \ n \ r \ n(Cisco控制器)\ r \ n用户:终端长度0 \ r \ n密码:*********** \ r \ n用户:' b'退出\ r \ n密码:' 10.100.100.2 b'\ r \ n \ r \ n(Cisco控制器)\ r \ n用户:终端长度0 \ r \ n密码:*********** \ r \ n用户:'