paramiko -SSH学习
SSHClient
用于连接远程服务器并执行基本命令
1、SSH登陆到交换机执行指令,并且将结果反馈到file1
import
paramiko
# 创建SSH对象
ssh
=
paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname
=
'IP'
, port
=
22
, username
=
'admin'
, password
=
'123'
)
# 执行命令
stdin, stdout, stderr
=
ssh.exec_command(
'display interface brief'
)
# 获取命令结果
result
=
stdout.read()
f = open("file1","wb")f.write(result)
f.close()
ssh.close()
# 关闭连接
ssh.close()
另外一种方法,有登陆日志,不错
# -*- coding: utf-8 -*-
import paramiko
def sshclient_execmd(hostname, port, username, password, execmd):
paramiko.util.log_to_file("paramiko.log")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname, port=port, username=username, password=password)
stdin, stdout, stderr = ssh.exec_command(execmd)
stdin.write("Y") # Generally speaking, the first connection, need a simple interaction.
a = stdout.read()
file = open("log","wb")
file.write(a)
file.close()
ssh.close()
def main():
hostname = ''
port = 22
username = ''
password = ''
execmd = "display ip interface brief"
sshclient_execmd(hostname, port, username, password, execmd)