SSH client & key policies

classparamiko.client.AutoAddPolicy

Policy voor het automatisch toevoegen van de hostnaam en nieuwe hostsleutel aan het lokale HostKeys object, en het op te slaan. Dit wordt gebruikt door SSHClient.

classparamiko.client.MissingHostKeyPolicy

Interface voor het definiëren van het beleid dat SSHClient moet gebruiken wanneer de hostnaam van deSSH-server niet in de systeemhostsleutels of in de sleutels van de applicatie staat. Voorgemaakte klassen implementeren beleid voor het automatisch toevoegen van de sleutel aan het HostKeys object van de toepassing (AutoAddPolicy),en voor het automatisch weigeren van de sleutel (RejectPolicy).

Deze functie kan bijvoorbeeld worden gebruikt om de gebruiker te vragen de sleutel te verifiëren.

__weakref__

lijst met zwakke verwijzingen naar het object (indien gedefinieerd)

missing_host_key(client, hostname, sleutel)¶

Aangeroepen wanneer een SSHClient een server sleutel ontvangt voor een server die noch in het systeem noch in het lokale HostKeys object zit. Om de sleutel te accepteren, gewoon teruggaan. Om af te wijzen, wordt een uitzondering opgeworpen (die aan de aanroepende toepassing wordt doorgegeven).

klasseparamiko.client.RejectPolicy

Policy voor het automatisch afwijzen van de onbekende hostnaam & sleutel. Deze wordt gebruikt door SSHClient.

classparamiko.client.SSHClient

Een high-level representatie van een sessie met een SSH server. Deze klasse omhult TransportChannel, en SFTPClient om de meeste aspecten van het authenticeren en openen van kanalen te verzorgen. Een typische use case is:

U kunt expliciete overrides voor authenticatie en server host keychecking doorgeven. Het standaardmechanisme is om te proberen lokale sleutelbestanden of eenSSH-agent (als er een draait) te gebruiken.

Instances van deze klasse kunnen worden gebruikt als contextmanagers.

Nieuw in versie 1.6.

__init__()¶

Maak een nieuwe SSHClient aan.

close()¶

Sluit deze SSHClient en zijn onderliggende Transport.

Waarschuwing

Als u dit niet doet, kan in sommige situaties uw Python-interpreter bij het afsluiten blijven hangen (vaak door “race conditions”).Het is een goede gewoonte om close je client objecten te verwijderen wanneer je ze niet meer gebruikt, in plaats van te vertrouwen op 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)¶

Verbind je met een SSH server en authenticeer je ermee. De host key van de server wordt gecontroleerd tegen de systeem host keys (zie load_system_host_keys)en eventuele lokale host keys (load_host_keys). Als de hostnaam van de server in geen van beide sets hostsleutels wordt gevonden, wordt het beleid voor ontbrekende hostsleutels gebruikt (zie set_missing_host_key_policy). Het standaardbeleid is om de sleutel te weigeren en een SSHException te genereren.

Authenticatie wordt geprobeerd in de volgende volgorde van prioriteit:

  • De pkey of key_filename die zijn doorgegeven (indien van toepassing)
    • key_filename kunnen zowel OpenSSH-paden voor openbare certificaten als gewone paden voor privésleutels bevatten; Als bestanden worden gevonden die eindigen op-cert.pub, wordt aangenomen dat ze overeenkomen met een private key, en worden beide componenten geladen. (De private sleutel zelf hoeft niet in key_filename te staan om dit te laten gebeuren – alleen het certificaat.)
  • Elke sleutel die we via een SSH-agent kunnen vinden
  • Elke “id_rsa”-, “id_dsa”- of “id_ecdsa”-sleutel die kan worden gevonden in~/.ssh/
    • Wanneer er OpenSSH-stijl openbare certificaten bestaan die overeenkomen met een bestaande dergelijke privésleutel (dus bijv.bijv. men heeft id_rsa enid_rsa-cert.pub) wordt het certificaat samen met de private sleutel geladen en gebruikt voor authenticatie.
  • Gebruikersnaam/wachtwoord authenticatie, als een wachtwoord is opgegeven

Als voor een privésleutel een wachtwoord nodig is om hem te ontgrendelen, en er is een wachtwoord opgegeven, dan wordt dat wachtwoord gebruikt om te proberen de sleutel te ontgrendelen.

Parameters:

  • hostnaam (str) – de server om verbinding mee te maken
  • poort (int) – de serverpoort om verbinding mee te maken
  • gebruikersnaam (str) – de gebruikersnaam om mee te authenticeren (standaard de huidige lokale gebruikersnaam)
  • wachtwoord (str) – wordt gebruikt voor wachtwoord authenticatie; wordt ook gebruikt voor private keydecryptie als passphrase niet is gegeven.
  • passphrase (str) – Wordt gebruikt voor het ontcijferen van private sleutels.
  • pkey (PKey) – een optionele privésleutel om te gebruiken voor verificatie
  • key_filename (str) – de bestandsnaam, of lijst van bestandsnamen van optionele private sleutel(s) en/of certs om te proberen voor authenticatie
  • timeout (float) – een optionele timeout (in seconden) voor de TCP verbinding
  • allow_agent (bool) – stel in op False om verbinding met de SSH agent uit te schakelen
  • look_for_keys (bool) – stel deze waarde in op False om het zoeken naar vindbare private keyfiles in ~/.ssh/
  • compress (bool) – stel deze waarde in op True om compressie aan te zetten
  • sock (socket) – een open socket of socket-achtig object (zoals een Channel) om te gebruiken voor communicatie met de doelhost
  • gss_auth (bool) – True als u GSS-API authenticatie wilt gebruiken
  • gss_kex (bool) – Voer GSS-API Key Exchange en gebruikersauthenticatie
  • gss_deleg_creds (bool) – Delegeer GSS-API client credentials of niet
  • gss_host (str) – De naam van de doelwitten in de kerberos database. standaard: hostnaam
  • gss_trust_dns (bool) – Geeft aan of de DNS al dan niet wordt vertrouwd om de naam van de host waarmee verbinding wordt gemaakt veilig te canoniseren (standaardTrue).
  • banner_timeout (float) – een optionele timeout (in seconden) om te wachten tot de SSH banner wordt getoond.
  • auth_timeout (float) – een optionele timeout (in seconden) om te wachten op een authenticatie antwoord.
  • disabled_algorithms (dict) – een optionele dict die rechtstreeks wordt doorgegeven aan Transport en het gelijknamige keywordargument.

Raises:

BadHostKeyException – als de hostsleutel van de server niet kon worden geverifieerd

Raises:

AuthenticationException – als de verificatie is mislukt

Raises:

SSHException – als er een andere fout is opgetreden bij het verbinden of het tot stand brengen van een SSH-sessie

Raises:

socket.error – als er een socketfout is opgetreden tijdens de verbinding

Veranderd in versie 1.15: De argumenten banner_timeoutgss_authgss_kexgss_deleg_creds en gss_host zijn toegevoegd.

Veranderd in versie 2.3: het gss_trust_dns-argument is toegevoegd.

Gewijzigd in versie 2.4: Het passphrase argument is toegevoegd.

Gewijzigd in versie 2.6: Het disabled_algorithms argument is toegevoegd.

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

Uitvoeren van een commando op de SSH-server. Een nieuwe Channel wordt geopend en het gevraagde commando wordt uitgevoerd. De invoer- en uitvoerstromen van het commando worden geretourneerd als Python file-achtige objecten die stdin, stdout, en stderr voorstellen.

Parameters:

  • commando (str) – het commando dat wordt uitgevoerd
  • bufsize (int) – wordt op dezelfde manier geïnterpreteerd als door de ingebouwde file() functie in Python
  • timeout (int) – stel de timeout van het kanaal van het commando in. Zie Channel.settimeout
  • get_pty (bool) – Vraag een pseudo-terminal aan de server (standaard False).Zie Channel.get_pty
  • environment (dict) –

    een dicte van shell-omgevingsvariabelen, die moeten worden samengevoegd in de standaardomgeving waarin het commando op afstand wordt uitgevoerd.

    Waarschuwing

    Servers kunnen sommige omgevingsvariabelen stilzwijgend weigeren; zie de waarschuwing in Channel.set_environment_variable voor details.

Retourneert:

de stdin, stdout, en stderr van de uitvoerende opdracht, als een3-tuple

Retourneert:

de stdin, stdout, en stderr van de uitvoerende opdracht, als een3-tuple

Retourneert:

SSHException – als de server er niet in slaagt de opdracht uit te voeren

Veranderd in versie 1.10: De get_pty kwarg toegevoegd.

get_host_keys()¶

Haal het lokale HostKeys object op. Dit kan worden gebruikt om de lokale host sleutels te onderzoeken of te wijzigen.

Returns:

de lokale host sleutels als een HostKeys object.

get_transport()¶

Hiermee krijgt u het onderliggende Transport object voor deze SSH verbinding.Dit kan worden gebruikt om taken op een lager niveau uit te voeren, zoals het openen van specifieke kanalen.

Returns:

de Transport voor deze verbinding

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

Start een interactieve shell sessie op de SSH server. Een nieuwe Channel wordt geopend en verbonden met een pseudo-terminal met het gevraagde terminal type en grootte.

Parameters:

  • term (str) – het terminaltype dat moet worden geëmuleerd (bijvoorbeeld, "vt100")
  • width (int) – de breedte (in karakters) van het terminal venster
  • height (int) – de hoogte (in karakters) van het terminal venster
  • width_pixels (int) – de breedte (in pixels) van het terminal venster
  • width_pixels (int) – de breedte (in pixels) van het terminal venster
  • . de breedte (in pixels) van het terminalvenster
  • height_pixels (int) – de hoogte (in pixels) van het terminalvenster
  • environment (dict) – de omgeving van de opdracht

Returns:

een nieuwe Channel die is verbonden met de shell op afstand

Verhoogt:

SSHException – als de server er niet in slaagt een shell op te roepen

load_host_keys(bestandsnaam)¶

Laad hostsleutels uit een lokaal hostsleutelbestand. Hostsleutels die met deze methode worden gelezen, worden gecontroleerd na sleutels die via load_system_host_keys zijn geladen, maar worden terug opgeslagen door save_host_keys (zodat ze kunnen worden gewijzigd).De missing host key policy AutoAddPolicy voegt sleutels aan deze set toe en slaat ze op, wanneer er verbinding wordt gemaakt met een voorheen onbekende server.

Deze methode kan meerdere keren worden aangeroepen. Elke nieuwe set van host keys zal worden samengevoegd met de bestaande set (nieuwe vervangt oude als er conflicten zijn). Bij automatisch opslaan wordt de laatste hostnaam gebruikt.

Parameters:

bestandsnaam (str) – de bestandsnaam die moet worden gelezen

Oproepen:

IOError – als de bestandsnaam niet kon worden gelezen

load_system_host_keys(bestandsnaam=None)¶

Laad hostsleutels uit een systeem (alleen-lezen) bestand. Host sleutels die met deze methode worden gelezen zullen niet worden opgeslagen door save_host_keys.

Deze methode kan meerdere keren worden aangeroepen. Elke nieuwe set hostsleutels wordt samengevoegd met de bestaande set (nieuwe in plaats van oude als er conflicten zijn).

Als filename wordt gelaten als None, wordt geprobeerd de sleutels te lezen uit het lokale “known hosts” bestand van de gebruiker, zoals gebruikt door OpenSSH, en er wordt geen uitzondering gemaakt als het bestand niet kan worden gelezen. Dit is waarschijnlijk alleen nuttig op posix.

Parameters:

bestandsnaam (str) – de bestandsnaam die moet worden gelezen, of None

Oproepen:

-als een bestandsnaam was opgegeven en het bestand kon niet worden gelezen

open_sftp()¶

Open een SFTP sessie op de SSH server.

Retourneert:

een nieuw SFTPClient sessie object

save_host_keys(bestandsnaam)¶

Opslaan van de hostsleutels in een bestand. Alleen de hostsleutels die zijn geladen metload_host_keys (plus alle direct toegevoegde) worden opgeslagen – niet de hostsleutels die zijn geladen met load_system_host_keys.

Parameters:

bestandsnaam (str) – de bestandsnaam om op te slaan

Opgeslagen:

IOError – als het bestand niet kon worden geschreven

set_log_channel(naam)¶

Stel het kanaal in voor het loggen. De standaard is "paramiko.transport", maar het kan op iedere gewenste waarde worden ingesteld.

Parameters:

naam (str) – nieuwe kanaalnaam voor logging

set_missing_host_key_policy(policy)¶

Stel het beleid in dat moet worden gebruikt wanneer verbinding wordt gemaakt met servers zonder een bekende host key.

Specifiek:

  • Een policy is een “policy class” (of instantie daarvan), namelijk een of andere subklasse van MissingHostKeyPolicy zoals RejectPolicy (dedefault), AutoAddPolicyWarningPolicy, of een door de gebruiker gecreëerde subklasse.
  • Een hostsleutel is bekend wanneer deze voorkomt in de cachehostsleutelstructuren van het clientobject (die worden bewerkt door load_system_host_keysen/of load_host_keys).

Parameters:

beleid (MissingHostKeyPolicy) – het beleid dat moet worden gebruikt wanneer een hostsleutel wordt ontvangen van een voorheen onbekende server

klasseparamiko.client.WarningPolicy

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *