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 Transport
Channel
, 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
oukey_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 danskey_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é.
- 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éfaut
True
). - 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.
BadHostKeyException
– si la clé d’hôte du serveur n’a pas pu être vérifiée
AuthenticationException
– si l’authentification a échoué
SSHException
– s’il y a eu une autre erreur de connexion ou d’établissement d’une session SSH
socket.error – si une erreur de socket s’est produite lors de la connexion
Changé dans la version 1.15 : Ajout des arguments banner_timeout
gss_auth
gss_kex
gss_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.
- 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
).VoirChannel.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.
les stdin, stdout et stderr de la commande en cours d’exécution, sous la forme d’un3-tuple
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.
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.
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.
- 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
un nouveau Channel
connecté au shell distant
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é.
Nom du fichier (str) – le nom du fichier à lire
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.
Nom du fichier (str) – le nom du fichier à lire, ou None
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.
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
.
nom du fichier (str) – le nom du fichier à sauvegarder
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.
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 queRejectPolicy
(ledéfaut),AutoAddPolicy
WarningPolicy
, 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_keys
et/ouload_host_keys
).
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
.