Políticas de clave del cliente SSH & class paramiko.client.
AutoAddPolicy
¶
Política para añadir automáticamente el nombre del host y la nueva clave del host al objeto HostKeys
local, y guardarlo. Esto es usado por SSHClient
.
classparamiko.client.
MissingHostKeyPolicy
¶
Interfaz para definir la política que SSHClient
debe usar cuando el nombre de host del servidorSSH no está en las claves de host del sistema o en las claves de la aplicación. Las clases prefabricadas implementan políticas para añadir automáticamente la clave al objeto HostKeys
de la aplicación (AutoAddPolicy
), y para rechazar automáticamente la clave (RejectPolicy
).
Esta función puede utilizarse para pedir al usuario que verifique la clave, por ejemplo.
__weakref__
¶
Lista de referencias débiles al objeto (si está definido)
missing_host_key
(cliente, nombre de host, key)
Se llama cuando un SSHClient
recibe una clave de servidor para un servidor que no está ni en el sistema ni en el objeto HostKeys
local. Para aceptar la clave, simplemente devuelve. Para rechazarla, se lanza una excepción (que se pasa a la aplicación que llama).
classparamiko.client.
RejectPolicy
¶
Política para rechazar automáticamente la clave & de hostname desconocido. Esto es utilizado por SSHClient
.
clase paramiko.client.
SSHClient
¶
Una representación de alto nivel de una sesión con un servidor SSH. Esta clase envuelve Transport
Channel
, y SFTPClient
para encargarse de la mayoría de los aspectos de autenticación y apertura de canales. Un caso de uso típico es:
Puedes pasar anulaciones explícitas para la autenticación y la comprobación de claves del servidor. El mecanismo por defecto es intentar usar archivos de claves locales o un agente SSH (si se está ejecutando uno).
Las instancias de esta clase pueden usarse como gestores de contexto.
Nuevo en la versión 1.6.
__init__
()
Crea un nuevo SSHClient.
close
()¶
Cierra este SSHClient y su Transport
.
Atención
No hacer esto puede, en algunas situaciones, hacer que tu Pythoninterpreter se cuelgue al cerrar (a menudo debido a condiciones de carrera).Es una buena práctica para close
tus objetos cliente cada vez que termines de usarlos, en lugar de confiar en la recolección de basura.
connect
(hostname, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None, auth_timeout=None, gss_trust_dns=True, passphrase=None, disabled_algorithms=None)¶
Conéctese a un servidor SSH y autentifíquese en él. La clave de host del servidor se comprueba con las claves de host del sistema (ver load_system_host_keys
)y cualquier clave de host local (load_host_keys
). Si el nombre de host del servidor no se encuentra en ninguno de los conjuntos de claves de host, se utiliza la política de claves de host faltantes (véase set_missing_host_key_policy
). La política por defecto es rechazar la clave y lanzar un SSHException
.
La autenticación se intenta en el siguiente orden de prioridad:
Los
pkey
okey_filename
pasados (si los hay)
key_filename
pueden contener rutas de certificados públicos OpenSSH así como rutas de claves privadas normales; cuando se encuentran archivos que terminan en-cert.pub
, se asume que coinciden con una clave privada, y se cargarán ambos componentes. (No es necesario que la clave privada aparezca enkey_filename
para que esto ocurra, sólo el certificado.)- Cualquier clave que podamos encontrar a través de un agente SSH
- Cualquier clave «id_rsa», «id_dsa» o «id_ecdsa» que se pueda descubrir en
~/.ssh/
- Cuando existan certificados públicos estilo OpenSSH que coincidan con una clave privada de este tipo (por lo que e.por ejemplo, uno tiene
id_rsa
yid_rsa-cert.pub
) el certificado se cargará junto con la clave privada y se utilizará para la autenticación.- Autenticación por nombre de usuario/contraseña, si se ha dado una contraseña
Si una clave privada requiere una contraseña para desbloquearla, y se introduce una contraseña, ésta se utilizará para intentar desbloquear la clave.
- nombre de host (str) – el servidor al que conectarse
- puerto (int) – el puerto del servidor al que conectarse
- nombre de usuario (str) – el nombre de usuario con el que autenticarse (por defecto, el nombre de usuario local actual)
- contraseña (str) – Se utiliza para la autenticación con contraseña; también se utiliza para keydecryption privado si
passphrase
no se da. - Frase de paso (str) – Se utiliza para descifrar las claves privadas.
- pkey (PKey) – una clave privada opcional para usar para la autenticación
- nombre_del_archivo (str) – el nombre de archivo, o lista de nombres de archivo de la(s) clave(s) privada(s) opcional(es) y/o certificados para intentar la autenticación
- timeout (float) – un tiempo de espera opcional (en segundos) para la conexión TCP
- allow_agent (bool) – se establece en False para desactivar la conexión con el agente SSH
- look_for_keys (bool) – se establece en False para deshabilitar la búsqueda de archivos de claves privadas detectables en
~/.ssh/
- compress (bool) – se establece en True para activar la compresión
- sock (socket) – un socket abierto o un objeto similar a un socket-(como un
Channel
) para utilizarlo en la comunicación con el host de destino - gss_auth (bool) –
True
si desea utilizar la autenticación GSS-API - gss_kex (bool) – Realiza el intercambio de claves GSS-API Key Exchange y autenticación de usuario
- gss_deleg_creds (bool) – Delegar o no las credenciales del cliente GSS-API
- gss_host (str) – El nombre de los objetivos en la base de datos kerberos. Por defecto: hostname
- gss_trust_dns (bool) – Indica si se confía o no en el DNS para canonizar de forma segura el nombre del host al que se está conectando (por defecto
True
). - banner_timeout (float) – un tiempo de espera opcional (en segundos) para que se presente el banner SSH.
- auth_timeout (float) – un tiempo de espera opcional (en segundos) para una respuesta de autenticación.
- disabled_algorithms (dict) – un dict opcional que se pasa directamente a
Transport
y su palabra claveargumento del mismo nombre.
BadHostKeyException
– si la clave del servidor no pudo serverificada
AuthenticationException
– si la autenticación falló
SSHException
– si hubo algún otro error al conectarse o establecer una sesión SSH
socket.error – si se produjo un error de socket al conectarse
Cambiado en la versión 1.15: Se han añadido los argumentos banner_timeout
gss_auth
gss_kex
gss_deleg_creds
y gss_host
.
Cambiado en la versión 2.3: Se ha añadido el argumento gss_trust_dns
.
Cambiado en la versión 2.4: Añadido el argumento passphrase
.
Cambiado en la versión 2.6: Añadido el argumento disabled_algorithms
.
exec_command
(command, bufsize=-1, timeout=None, get_pty=False, environment=None)¶
Ejecuta un comando en el servidor SSH. Se abre un nuevo Channel
y se ejecuta el comando solicitado. Los flujos de entrada y salida del comando se devuelven como objetos tipo Python file
que representan stdin, stdout y stderr.
- comando (str) – el comando a ejecutar
- bufsize (int) – interpretado de la misma manera que por la función incorporada
file()
enPython - timeout (int) – establece el tiempo de espera del canal del comando. Ver
Channel.settimeout
- get_pty (bool) – Solicita una pseudoterminal al servidor (por defecto
False
).VerChannel.get_pty
- Entorno (dict) –
Un dict de variables de entorno de la shell, para ser fusionado en el entorno por defecto en el que se ejecuta el comando remoto.
Atención
Los servidores pueden rechazar silenciosamente algunas variables de entorno; consulte la advertencia en
Channel.set_environment_variable
para más detalles.
Las entradas, salidas y salidas estándar del comando que se está ejecutando, como una pareja3
SSHException
– si el servidor no consigue ejecutar el comando
Cambiado en la versión 1.10: Se ha añadido el get_pty
kwarg.
get_host_keys
()¶
Obtener el objeto local HostKeys
. Esto puede usarse para examinar las claves locales del host o cambiarlas.
las claves locales del host como un objeto HostKeys
.
get_transport
()
Devuelve el objeto Transport
subyacente para esta conexión SSH.Esto puede ser utilizado para realizar tareas de nivel inferior, como la apertura de specifickinds de canales.
el Transport
para esta conexión
invoke_shell
(term=’vt100′, width=80, height=24, width_pixels=0, height_pixels=0, environment=None)¶
Inicia una sesión shell interactiva en el servidor SSH. Se abre un nuevo Channel
y se conecta a una pseudo-terminal utilizando el tipo y tamaño de terminal solicitado.
- Terminal (str) – el tipo de terminal a emular (por ejemplo,
"vt100"
) - anchura (int) – la anchura (en caracteres) de la ventana del terminal
- altura (int) – la altura (en caracteres) de la ventana del terminal
- anchura_píxeles (int) -. la anchura (en píxeles) de la ventana del terminal
- height_pixels (int) – la altura (en píxeles) de la ventana del terminal
- environment (dict) – el entorno del comando
un nuevo Channel
conectado a la shell remota
SSHException
– si el servidor no consigue invocar un shell
load_host_keys
(filename)¶
Carga claves de host desde un archivo local de claves de host. Las claves de host leídas con este método se comprobarán después de las claves cargadas mediante load_system_host_keys
, pero se guardarán de nuevo mediante save_host_keys
(para que puedan modificarse).La política de claves de host perdidas AutoAddPolicy
añade claves a este conjunto y las guarda, cuando se conecta a un servidor previamente desconocido.
Este método puede ser llamado varias veces. Cada nuevo conjunto de claves de host se fusionará con el conjunto existente (el nuevo sustituye al antiguo si hay conflictos). Cuando se guarda automáticamente, se utiliza el último nombre de host.
Filename (str) – el nombre del archivo a leer
IOError
– si no se pudo leer el nombre del archivo
load_system_host_keys
(filename=None)¶
Carga las claves de host desde un archivo del sistema (de sólo lectura). Las claves de host leídas con este método no serán guardadas de nuevo por save_host_keys
.
Este método puede ser llamado varias veces. Cada nuevo conjunto de claves de host se fusionará con el conjunto existente (el nuevo sustituye al antiguo si hay conflictos).
Si filename
se deja como None
, se intentará leer las claves del archivo local de «hosts conocidos» del usuario, tal y como lo utiliza OpenSSH, y no se lanzará ninguna excepción si no se puede leer el archivo. Esto es probablemente sólo útil en posix.
Nombre del archivo (str) – el nombre del archivo a leer, o None
IOError
-si se proporcionó un nombre de archivo y no se pudo leer el archivo
open_sftp
()
Abre una sesión SFTP en el servidor SSH.
un nuevo SFTPClient
objeto de sesión
save_host_keys
(filename)¶
Guarda las claves de host de nuevo en un archivo. Sólo se guardarán las claves de host cargadas conload_host_keys
(más las añadidas directamente) – no las claves de host cargadas con load_system_host_keys
.
nombre de archivo (str) – el nombre de archivo en el que se guardará
IOError
– si el archivo no pudo ser escrito
set_log_channel
(nombre)¶
Establezca el canal para el registro. El valor por defecto es "paramiko.transport"
pero se puede establecer lo que se quiera.
nombre (str) – nuevo nombre del canal para el registro
set_missing_host_key_policy
(política)
Establezca la política a utilizar cuando se conecte a servidores sin una clave de host conocida.
Específicamente:
- Una política es una «clase de política» (o instancia de la misma), es decir, alguna subclase de
MissingHostKeyPolicy
comoRejectPolicy
(la predeterminada),AutoAddPolicy
WarningPolicy
, o una subclase creada por el usuario. - Una clave de host es conocida cuando aparece en las estructuras de claves de host en caché del objeto cliente (las manipuladas por
load_system_host_keys
y/oload_host_keys
).
política (MissingHostKeyPolicy) – la política a utilizar cuando se recibe una clave de host de un servidor previamente desconocido
claseparamiko.client.
WarningPolicy