好的! 以下是Python用SSH连接到网络设备的完整攻略:
什么是SSH
SSH(Secure Shell) 是一项协议标准和相应的网络服务,用于在无安全保证的网络上为网络服务提供安全的传输和其他安全服务。SSH协议最初由芬兰的SSH Communications Security Corp.使用自己公司的加密措施而设计,后来由IETF(互联网工程任务组)负责制定和标准化。
SSH连接到网络设备的步骤
第一步:连接到设备
首先,我们需要导入Paramiko库。
import paramiko
然后,我们将使用Paramiko的SSHClient函数来连接到网络设备。
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname='192.168.1.1', username='admin', password='pass')
其中,我们需要提供网络设备的IP地址,设备的用户名和密码。另外,由于我们第一次连接到网络设备,需要信任设备的公钥。 set_missing_host_key_policy
函数可以自动将网络设备的公钥添加到已知主机列表中。
第二步:发送命令
一旦我们连接到设备,就可以发送命令。我们可以使用SSHClient实例的exec_command()方法发送命令。
stdin, stdout, stderr = ssh_client.exec_command('show ip interface brief')
output = stdout.read().decode('utf-8')
print(output)
其中,exec_command()
方法返回3个文件对象:标准输入(stdin
)、标准输出(stdout
)和标准错误(stderr
)。我们可以从标准输出中读取命令执行结果,然后打印出来。
第三步:关闭连接
最终,我们需要关闭SSH连接:
ssh_client.close()
示例
以下是两个使用Python连接到网络设备的示例:
示例1
此示例连接到一个Cisco路由器,然后执行一个show version 命令。
import paramiko
# 连接到路由器
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname='192.168.1.1', username='admin', password='pass')
# 发送show version命令
stdin, stdout, stderr = ssh_client.exec_command('show version')
output = stdout.read().decode('utf-8')
# 打印输出
print(output)
# 关闭连接
ssh_client.close()
示例2
此示例连接到一个Juniper交换机,然后执行一个show interfaces terse 命令。
import paramiko
# 连接到交换机
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname='192.168.1.2', username='admin', password='pass')
# 发送show interfaces terse命令
stdin, stdout, stderr = ssh_client.exec_command('show interfaces terse')
output = stdout.read().decode('utf-8')
# 打印输出
print(output)
# 关闭连接
ssh_client.close()
以上就是使用Python连接到网络设备的攻略,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python用SSH连接到网络设备 - Python技术站