Client SSH & politiques de clés

classparamiko.client.

.AutoAddPolicy

Politique pour ajouter automatiquement le nom d’hôte et la nouvelle clé d’hôte à l’objet HostKeys local, et le sauvegarder. Ceci est utilisé par SSHClient.

classparamiko.client.MissingHostKeyPolicy

Interface pour définir la politique que SSHClient doit utiliser lorsque le nom d’hôte du serveurSSH ne figure ni dans les clés d’hôte du système ni dans les clés de l’application. Des classes préconçues mettent en œuvre des politiques pour ajouter automatiquement la clé à l’objet HostKeys de l’application (AutoAddPolicy),et pour rejeter automatiquement la clé (RejectPolicy).

Cette fonction peut être utilisée pour demander à l’utilisateur de vérifier la clé, par exemple.

__weakref__

Liste de références faibles à l’objet (si défini)

missing_host_key(client, nom d’hôte, key)¶

Appelé lorsqu’un SSHClient reçoit une clé de serveur pour un serveur qui ne se trouve ni dans le système ni dans l’objet local HostKeys. Pour accepter la clé, il suffit de retourner. Pour rejeter, soulève une exception (qui sera passée à l’application appelante).

classparamiko.client.RejectPolicy

Politique pour rejeter automatiquement la clé de nom d’hôte inconnu &. Elle est utilisée par SSHClient.

classparamiko.client.SSHClient

Une représentation de haut niveau d’une session avec un serveur SSH. Cette classe enveloppe TransportChannel, et SFTPClient pour prendre en charge la plupart desaspects de l’authentification et de l’ouverture des canaux. Un cas d’utilisation typique est :

Vous pouvez transmettre des surcharges explicites pour l’authentification et la vérification des clés de l’hôte du serveur. Le mécanisme par défaut est d’essayer d’utiliser des fichiers de clés locaux ou un agent SSH (s’il y en a un en cours d’exécution).

Les instances de cette classe peuvent être utilisées comme gestionnaires de contexte.

Nouveau dans la version 1.6.

__init__()¶

Créer un nouveau SSHClient.

close()¶

Fermer ce SSHClient et son Transport sous-jacent.

Avertissement

L’échec de cette opération peut, dans certaines situations, provoquer le blocage de votre interpréteur Python à l’arrêt (souvent en raison de conditions de course).C’est une bonne pratique de close vos objets clients chaque fois que vous avez fini de les utiliser, au lieu de compter sur le garbage collection.

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)¶

Connexion à un serveur SSH et authentification auprès de celui-ci. La clé d’hôte du serveurest vérifiée par rapport aux clés d’hôte du système (voir load_system_host_keys)et à toute clé d’hôte locale (load_host_keys). Si le nom d’hôte du serveur n’est pas trouvé dans l’un ou l’autre des ensembles de clés d’hôte, la politique de clé d’hôte manquante est utilisée (voir set_missing_host_key_policy). La politique par défaut consiste à rejeter la clé et à lever un SSHException.

L’authentification est tentée dans l’ordre de priorité suivant :

  • La pkey ou key_filename passée (le cas échéant)
    • key_filename peut contenir des chemins de certificats publics OpenSSH ainsi que des chemins de clés privées ordinaires ; lorsque des fichiers se terminant par-cert.pub sont trouvés, ils sont supposés correspondre à une clé privée, et les deux composants seront chargés. (La clé privée elle-même n’a pas besoin d’être listée dans key_filename pour que cela se produise – juste le certificat.)
  • Toute clé que nous pouvons trouver par le biais d’un agent SSH

  • Toute clé « id_rsa », « id_dsa » ou « id_ecdsa » découvrable dans~/.ssh/
    • Quand il existe des certificats publics de style OpenSSH qui correspondent à une telle clé privée existante (donc par ex.par exemple on a id_rsa etid_rsa-cert.pub) le certificat sera chargé avec la clé privée et utilisé pour l’authentification.
  • Plain username/password auth, if a password was given

Si une clé privée nécessite un mot de passe pour la déverrouiller, et qu’un mot de passe est passé, ce mot de passe sera utilisé pour tenter de déverrouiller la clé.

Paramètres :

  • Nom d’hôte (str) – le serveur auquel se connecter
  • port (int) – le port du serveur auquel se connecter
  • Nom d’utilisateur (str) – le nom d’utilisateur sous lequel s’authentifier (par défaut, le nom d’utilisateur local actuel)
  • mot de passe (str) – Utilisé pour l’authentification par mot de passe ; est également utilisé pour le décryptage de la clé privée si passphrase n’est pas donné.
  • passphrase (str) – Utilisée pour le décryptage des clés privées.
  • pkey (PKey) – une clé privée facultative à utiliser pour l’authentification
  • key_filename (str) – le nom de fichier, ou la liste de noms de fichiers, de clé(s) privée(s) facultative(s) et/ou de certs à essayer pour l’authentification
  • Timeout (float) – un délai d’attente facultatif (en secondes) pour la connexion TCP
  • allow_agent (bool) – défini sur False pour désactiver la connexion à l’agent SSH
  • . look_for_keys (bool) – défini à False pour désactiver la recherche de fichiers de clés privées découvrables dans ~/.ssh/
  • compress (bool) – défini à True pour activer la compression
  • sock (socket) – un socket ouvert ou un objet de type socket-.like object (such as a Channel) to usefor communication to the target host
  • gss_auth (bool) – True si vous voulez utiliser l’authentification GSS-API
  • gss_kex (bool) – Perform GSS-API Key Exchange et l’authentification des utilisateurs
  • gss_deleg_creds (bool) – Déléguer les informations d’identification du client GSS-API ou non
  • gss_host (str) – Le nom des cibles dans la base de données kerberos. Par défaut : hostname
  • gss_trust_dns (bool) – Indique si le DNS est fiable ou non pour canaliser de manière sécurisée le nom de l’hôte auquel on se connecte (par défautTrue).
  • banner_timeout (float) – un délai optionnel (en secondes) pour attendre que la bannière SSH soit présentée.
  • auth_timeout (float) – un délai optionnel (en secondes) pour attendre une réponse d’authentification.
  • disabled_algorithms (dict) – un dict optionnel passé directement à Transport et à son argument de mot-clé du même nom.

Raises:

BadHostKeyException – si la clé d’hôte du serveur n’a pas pu être vérifiée

Raises:

AuthenticationException – si l’authentification a échoué

Raises :

SSHException – s’il y a eu une autre erreur de connexion ou d’établissement d’une session SSH

Rapports:

socket.error – si une erreur de socket s’est produite lors de la connexion

Changé dans la version 1.15 : Ajout des arguments banner_timeoutgss_authgss_kexgss_deleg_creds et gss_host.

Changé dans la version 2.3 : ajout de l’argument gss_trust_dns.

Changé dans la version 2.4 : Ajouté l’argument passphrase.

Changé dans la version 2.6 : Ajouté l’argument disabled_algorithms.

exec_command(command, bufsize=-1, timeout=None, get_pty=False, environment=None)¶

Exécuter une commande sur le serveur SSH. Une nouvelle Channel est ouverte et la commande demandée est exécutée. Les flux d’entrée et de sortie de la commande sont renvoyés sous forme d’objets de type Python file représentantstdin, stdout et stderr.

Paramètres:

  • commande (str) – la commande à exécuter
  • bufsize (int) – interprétée de la même manière que par la fonction intégrée file() enPython
  • Timeout (int) – définit le délai d’attente du canal de la commande. Voir Channel.settimeout
  • get_pty (bool) – demande un pseudo-terminal au serveur (par défaut False).Voir Channel.get_pty
  • environnement (dict) –

    un dict de variables d’environnement shell, à fusionner dans l’environnement par défaut dans lequel la commande distante s’exécute.

    Avertissement

    Les serveurs peuvent rejeter silencieusement certaines variables d’environnement ; voir l’avertissement de Channel.set_environment_variable pour plus de détails.

Retourne :

les stdin, stdout et stderr de la commande en cours d’exécution, sous la forme d’un3-tuple

Revient :

SSHException – si le serveur ne parvient pas à exécuter la commande

Changé dans la version 1.10 : Ajout du get_pty kwarg.

get_host_keys()¶

Gagner l’objet local HostKeys. Cela peut être utilisé pour examiner les clés d’hôte locales ou les modifier.

Retourne :

les clés d’hôte locales sous la forme d’un objet HostKeys.

get_transport()

Retourne l’objet sous-jacent Transport pour cette connexion SSH.Cela peut être utilisé pour effectuer des tâches de plus bas niveau, comme l’ouverture de spécifickinds de canaux.

Retourne :

la Transport pour cette connexion

invoke_shell(term=’vt100′, width=80, height=24, width_pixels=0, height_pixels=0, environment=None)¶

Démarre une session shell interactive sur le serveur SSH. Une nouvelle Channel est ouverte et connectée à un pseudo-terminal utilisant le type et la taille de terminal demandés.

Paramètres :

  • Terme (str) – le type de terminal à émuler (par exemple, "vt100")
  • largeur (int) – la largeur (en caractères) de la fenêtre du terminal
  • hauteur (int) – la hauteur (en caractères) de la fenêtre du terminal
  • largeur_pixels (int) -. la largeur (en pixels) de la fenêtre du terminal
  • hauteur_pixels (int) – la hauteur (en pixels) de la fenêtre du terminal
  • environnement (dict) – l’environnement de la commande

Retourne :

un nouveau Channel connecté au shell distant

Revient :

SSHException – si le serveur ne parvient pas à invoquer un shell

load_host_keys(nom du fichier)¶

Chargez les clés d’hôte à partir d’un fichier de clés d’hôte local. Les clés d’hôte lues avec cetteméthode seront vérifiées après les clés chargées via load_system_host_keys,mais seront sauvegardées en retour par save_host_keys (afin qu’elles puissent être modifiées).La politique de clé d’hôte manquante AutoAddPolicy ajoute des clés à cet ensemble et les sauvegarde, lors de la connexion à un serveur précédemment inconnu.

Cette méthode peut être appelée plusieurs fois. Chaque nouvel ensemble de clés d’hôte sera fusionné avec l’ensemble existant (le nouveau remplaçant l’ancien s’il y a desconflits). Lors de la sauvegarde automatique, le dernier nom d’hôte est utilisé.

Paramètres:

Nom du fichier (str) – le nom du fichier à lire

Revendications :

IOError – si le nom de fichier n’a pas pu être lu

load_system_host_keys(filename=None)¶

Chargez les clés d’hôte à partir d’un fichier système (en lecture seule). Les clés d’hôte lues avec cette méthode ne seront pas réenregistrées par save_host_keys.

Cette méthode peut être appelée plusieurs fois. Chaque nouvel ensemble de clés d’hôtes sera fusionné avec l’ensemble existant (le nouveau remplaçant l’ancien s’il y a desconflits).

Si filename est laissé sous la forme None, une tentative sera faite pour lire les clés à partir du fichier local « hôtes connus » de l’utilisateur, tel qu’utilisé par OpenSSH,et aucune exception ne sera levée si le fichier ne peut pas être lu. Ceci n’estprobablement utile que sur posix.

Paramètres:

Nom du fichier (str) – le nom du fichier à lire, ou None

Revendications :

IOError -si un nom de fichier a été fourni et que le fichier n’a pas pu être lu

open_sftp()¶

Ouvrir une session SFTP sur le serveur SSH.

Retourne :

un nouvel SFTPClient objet de session

save_host_keys(nom du fichier)¶

Sauvegarder les clés d’hôte à nouveau dans un fichier. Seules les clés d’hôte chargées avecload_host_keys (plus toute clé ajoutée directement) seront sauvegardées – pas les clés d’hôte chargées avec load_system_host_keys.

Paramètres:

nom du fichier (str) – le nom du fichier à sauvegarder

Reviennent :

IOError – si le fichier n’a pas pu être écrit

set_log_channel(nom)¶

Définir le canal pour la journalisation. La valeur par défaut est "paramiko.transport"mais elle peut être définie sur ce que vous voulez.

Paramètres:

nom (str) – nouveau nom de canal pour la journalisation

set_missing_host_key_policy(policy)¶

Définir la politique à utiliser lors de la connexion à des serveurs sans clé d’hôte connue.

Spécifiquement :

  • Une politique est une « classe de politique » (ou une instance de celle-ci), à savoir une certaine sous-classe de MissingHostKeyPolicy telle que RejectPolicy (ledéfaut), AutoAddPolicyWarningPolicy, ou une sous-classe créée par l’utilisateur.
  • Une clé d’hôte est connue lorsqu’elle apparaît dans les structures cachedhost keys de l’objet client (celles manipulées par load_system_host_keyset/ou load_host_keys).

Paramètres:

politique (MissingHostKeyPolicy) – la politique à utiliser lors de la réception d’une clé d’hôte d’un serveur précédemment inconnu

classeparamiko.client.WarningPolicy.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *