¿El módulo paramiko de Python admite la conexión a conmutadores?
El propósito de paramiko
El módulo paramiko es una conexión segura remota SSH2 basada en Python. Admite métodos de autenticación y clave, y puede realizar conexiones remotas, ejecución de comandos y transferencia de archivos. y funciones SSH intermedias como proxy
Instalación
pip install paramiko
o easy_install paramiko
paramiko se basa en Crypto de terceros. , Ecdsa o terceros. p>
o easy_install paramiko
paramiko depende de Crypto, Ecdsa y pyhton-devel de terceros, por lo que necesita instalar
componentes principales de Paramiko p>
Clase SSHClient
La clase SSHClient es una representación de alto nivel de una sesión de servicio SSH. Implementa los métodos de establecimiento de suma de comprobación SFTP, canal y transporte
, y. el método de establecimiento de suma de comprobación SFTP
método de conexión
el método de conexión implementa la conexión ssh remota y la verifica
nombre de host El host de destino de la conexión
puerto= Puerto especificado SSH_PORT
username=Nombre de usuario sin autenticación
contraseña=Ninguna Contraseña para autenticación
pkey=Ninguna Método de clave privada para autenticación
key_filename=Ninguno Especifica un nombre de archivo o una lista de archivos para la clave de autenticación. file
timeout=Ninguno tiempo de espera de conexión TCP opcional
allow_agent=True, ya sea para permitir la conexión al agente ssh, el valor predeterminado es True, enable
look_for_keys= Verdadero, ya sea en ~/.ssh, el valor predeterminado es Verdadero Permitir
compress=False, si se habilita la compresión
sock=None,
gss_auth= Falso,
gss_auth=Falso,
p>
gss_kex=Falso,
gss_deleg_creds=Verdadero,
gss_host=Ninguno ,
banner_timeout=None
Parámetros
método exec_command
Un método para ejecutar de forma remota un comando Los flujos de entrada y salida del. Los comandos son entrada estándar, salida marcada y salida de error estándar
comando Comando ejecutado
bufsize=-1 tamaño del búfer de archivo
timeout=Ninguno
get_pty=False
Parámetros
método load_system_host_key
Cortar y pegar en el archivo de clave pública local, el valor predeterminado es ~/.AutoAddPolicy ())
La política de adición automática agrega automáticamente el nombre de host y la clave de host al objeto HostKeys local, no depende de la configuración de load_system_host_key. Por ejemplo, al establecer una nueva conexión ssh, no es necesario volver a ingresar sí o no para confirmar.
WarningPolicy se usa para registrar advertencias y aceptaciones de Python sobre claves de host desconocidas. Funciona de manera similar a AutoAddPolicy, pero. indicará que se trata de una conexión nueva
RejectPolicy rechaza automáticamente nombres de host y claves desconocidos, según la configuración de load_system_host_key.
Esta es la opción predeterminada
clase SFTPClient
SFTPCLient actúa como el objeto cliente de sftp e implementa operaciones remotas de archivos como carga, descarga, permisos y estado según la sesión de sftp. del protocolo de transferencia ssh
from_transport(cls,t) Crea un canal de cliente SFTP conectado
put(localpath, remotopath, callback=None, confirm=True) Sube los parámetros del archivo local a el servidor para confirmación: si se llama al método stat (), verifica el estado del archivo y devuelve el resultado de ls -l
get(remotepath, localpath, callback=None) descarga el archivo del servidor al local
mkdir() crea en el directorio del servidor
remove() elimina el directorio en el servidor
rename() cambia el nombre del directorio en el servidor
stat() comprueba el estado de los archivos en el servidor
p>
listdir() enumera los archivos en el directorio del servidor
Conexión remota y ejecución de comandos p>
Realizar conexión remota con el host y ejecutar comandos con registros
p>
* Método de verificación directa import paramiko
host = '172.16.200.45' port = 22user = 'root' passwd = '123123' # Crear objeto SSH ssh = paramiko.SSHClient() # Permitir conectarse a un host que no está en el archivo know_hosts ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# Conectarse al servidor ssh.connect(hostname=host, port=port, nombre de usuario=usuario, contraseña=contraseña)
paramiko.util.log_ to_file('syslogin.log') ?# Registrar información de inicio de sesión
# Ejecutar comandos stdin, stdout, stderr = ssh.exec_command('df')# Obtener el resultado del comando result = stdout. read()print(result)# Cerrar la conexión ssh.close()
Importación de transmisión encapsulada SSHClient paramiko
host = '172.16.200.45'port = 22user = 'root' passwd = '123123'transport = paramiko.Transport(( host, port))
transport.connect(nombre de usuario=usuario, contraseña=contraseña)
ssh=paramiko.SSHClient()
p>ssh._transport = transporte
stdin, stdout, stderr = ssh.exec_command('df') print(stdout.read())
Importación de conexión basada en clave pública paramiko
private_key = paramiko .RSAKey.from_private_key_file('/ home/fuzengjie/.ssh/id_rsa')
# Crear objeto SSH ssh = paramiko.SSHClient()# Permitir conexión usando clave pública