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 Transport
Channel
, 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
ofkey_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 inkey_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.
- 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 (standaard
True
). - 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.
BadHostKeyException
– als de hostsleutel van de server niet kon worden geverifieerd
AuthenticationException
– als de verificatie is mislukt
SSHException
– als er een andere fout is opgetreden bij het verbinden of het tot stand brengen van een SSH-sessie
socket.error – als er een socketfout is opgetreden tijdens de verbinding
Veranderd in versie 1.15: De argumenten banner_timeout
gss_auth
gss_kex
gss_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.
- 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
).ZieChannel.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.
de stdin, stdout, en stderr van de uitvoerende opdracht, als een3-tuple
de stdin, stdout, en stderr van de uitvoerende opdracht, als een3-tuple
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.
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.
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.
- 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
een nieuwe Channel
die is verbonden met de shell op afstand
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.
bestandsnaam (str) – de bestandsnaam die moet worden gelezen
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.
bestandsnaam (str) – de bestandsnaam die moet worden gelezen, of None
-als een bestandsnaam was opgegeven en het bestand kon niet worden gelezen
open_sftp
()¶
Open een SFTP sessie op de SSH server.
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
.
bestandsnaam (str) – de bestandsnaam om op te slaan
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.
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
zoalsRejectPolicy
(dedefault),AutoAddPolicy
WarningPolicy
, 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_keys
en/ofload_host_keys
).
beleid (MissingHostKeyPolicy) – het beleid dat moet worden gebruikt wanneer een hostsleutel wordt ontvangen van een voorheen onbekende server
klasseparamiko.client.
WarningPolicy