Client SSH & politiche delle chiavi

classeparamiko.client.AutoAddPolicy

Policy per aggiungere automaticamente l’hostname e la nuova chiave host all’oggetto locale HostKeys, e salvarlo. Questo è usato da SSHClient.

classeparamiko.client.MissingHostKeyPolicy

Interfaccia per definire la politica che SSHClient dovrebbe usare quando l’hostname del serverSSH non è nelle chiavi host di sistema o nelle chiavi dell’applicazione. Le classi predefinite implementano le politiche per aggiungere automaticamente la chiave all’oggetto HostKeys dell’applicazione (AutoAddPolicy), e per rifiutare automaticamente la chiave (RejectPolicy).

Questa funzione può essere usata per chiedere all’utente di verificare la chiave, per esempio.

__weakref__

lista di riferimenti deboli all’oggetto (se definito)

missing_host_key(client, hostname, key)¶

Chiamato quando un SSHClient riceve una chiave server per un server che non è nel sistema o nell’oggetto locale HostKeys. Per accettare la chiave, semplicemente ritorna. Per rifiutare, viene sollevata un’eccezione (che verrà passata all’applicazione chiamante).

classparamiko.client.RejectPolicy

Policy per rifiutare automaticamente la chiave & hostname sconosciuto. Questo è usato da SSHClient.

classeparamiko.client.SSHClient

una rappresentazione di alto livello di una sessione con un server SSH. Questa classe avvolge TransportChannel, e SFTPClient per prendersi cura della maggior parte degli aspetti di autenticazione e apertura dei canali. Un tipico caso d’uso è:

Si possono passare override espliciti per l’autenticazione e il controllo delle chiavi del server host. Il meccanismo predefinito è quello di tentare di usare file di chiavi locali o un agenteSSH (se uno è in esecuzione).

Istanze di questa classe possono essere usate come gestori di contesto.

Nuovo nella versione 1.6.

__init__()¶

Crea un nuovo SSHClient.

close()¶

Chiude questo SSHClient e il suo sottostante Transport.

Attenzione

Non fare questo può, in alcune situazioni, causare un blocco dell’interprete Python alla chiusura (spesso a causa di condizioni di gara).È buona pratica close eliminare i vostri oggetti client ogni volta che avete finito di usarli, invece di fare affidamento sulla 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)¶

Connettiti a un server SSH e autenticati con esso. La chiave host del server viene controllata rispetto alle chiavi host di sistema (vedi load_system_host_keys) e a qualsiasi chiave host locale (load_host_keys). Se l’hostname del server non si trova in nessuno dei due gruppi di chiavi host, viene usata la politica della chiave host mancante (vedere set_missing_host_key_policy). La politica predefinita è quella di rifiutare la chiave e sollevare un SSHException.

L’autenticazione è tentata nel seguente ordine di priorità:

  • Il pkey o key_filename passato (se presente)
    • key_filename può contenere percorsi di certificati pubblici OpenSSH così come percorsi regolari di chiavi private; quando i file che terminano con-cert.pub sono trovati, si presume che corrispondano a una chiave privata, ed entrambi i componenti saranno caricati. (La chiave privata stessa non ha bisogno di essere elencata in key_filename perché ciò avvenga – solo il certificato.)
  • Qualsiasi chiave che possiamo trovare attraverso un agente SSH
  • Qualsiasi chiave “id_rsa”, “id_dsa” o “id_ecdsa” scopribile in~/.ssh/
    • Quando esistono certificati pubblici in stile OpenSSH che corrispondono ad una chiave privata esistente (così ad es.ad esempio uno ha id_rsa eid_rsa-cert.pub) il certificato sarà caricato insieme alla chiave privata e usato per l’autenticazione.
  • Plain username/password auth, se è stata data una password
  • Se una chiave privata richiede una password per sbloccarla, e viene passata una password, questa sarà usata per tentare di sbloccare la chiave.

    Parametri:

    • hostname (str) – il server a cui connettersi
    • port (int) – la porta del server a cui connettersi
    • username (str) – il nome utente con cui autenticarsi (predefinito il nome utente locale corrente)
    • password (str) – usato per l’autenticazione con password; è anche usato per la decrittazione della chiave privata se passphrase non è dato.
    • passphrase (str) – Usato per decifrare le chiavi private.
    • pkey (PKey) – una chiave privata opzionale da usare per l’autenticazione
    • key_filename (str) – il nome del file, o una lista di nomi di file, di chiavi private opzionali e/o certificati da provare per l’autenticazione
    • timeout (float) – un timeout opzionale (in secondi) per la connessione TCP
    • allow_agent (bool) – impostato su False per disabilitare la connessione all’agente SSH
    • look_for_keys (bool) – impostato su False per disabilitare la ricerca di keyfile private scopribili in ~/.ssh/
    • compress (bool) – impostato su True per attivare la compressione
    • sock (socket) – un socket aperto o un oggetto simile ad un socket (come un iv(come un Channel) da usare per la comunicazione con l’host di destinazione
    • gss_auth (bool) – True se si vuole usare l’autenticazione GSS-API
    • gss_kex (bool) – Esegue il GSS-API Key Exchange e l’autenticazione dell’utente
    • gss_deleg_creds (bool) – Delegare o meno le credenziali del client GSS-API
    • gss_host (str) – Il nome degli obiettivi nel database Kerberos. default: hostname
    • gss_trust_dns (bool) – Indica se ci si fida o meno del DNS per canonizzare in modo sicuro il nome dell’host a cui ci si collega (defaultTrue).
    • banner_timeout (float) – un timeout opzionale (in secondi) per attendere la presentazione del banner SSH.
    • auth_timeout (float) – un timeout opzionale (in secondi) per attendere una risposta di autenticazione.
    • disabled_algorithms (dict) – un dict opzionale passato direttamente a Transport e la sua parola chiave con lo stesso nome.

    Risorge:

    BadHostKeyException – se la chiave host del server non può essere beverificata

    Risorge:

    AuthenticationException – se l’autenticazione fallisce

    Risorge:

    SSHException – se c’è stato qualche altro errore nel connettersi o nello stabilire una sessione SSH

    Risorge:

    socket.error – se si è verificato un errore del socket durante la connessione

    Cambiato nella versione 1.15: Aggiunti gli argomenti banner_timeoutgss_authgss_kexgss_deleg_creds e gss_host.

    Cambiato nella versione 2.3: Aggiunto l’argomento gss_trust_dns.

    Cambiato nella versione 2.4: Aggiunto l’argomento passphrase.

    Cambiato nella versione 2.6: Aggiunto l’argomento disabled_algorithms.

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

    Esegue un comando sul server SSH. Un nuovo Channel viene aperto e il comando richiesto viene eseguito. L’input e l’outputstream del comando sono restituiti come oggetti Python file simili a stdin, stdout e stderr.

    Parametri:

    • comando (str) – il comando da eseguire
    • bufsize (int) – interpretato allo stesso modo della funzione integrata file() inPython
    • timeout (int) – imposta il timeout del canale del comando. Vedere Channel.settimeout
    • get_pty (bool) – Richiede uno pseudo-terminale dal server (default False).Vedere Channel.get_pty
    • environment (dict) –

      un dict di variabili d’ambiente di shell, da unire all’ambiente di default in cui viene eseguito il comando remoto.

      Attenzione

      I server potrebbero rifiutare silenziosamente alcune variabili d’ambiente; vedere l’avviso in Channel.set_environment_variable per dettagli.

    Ritorna:

    lo stdin, lo stdout e lo stderr del comando in esecuzione, come una3-tupla

    Risulta:

    SSHException – se il server non riesce ad eseguire il comando

    Cambiato nella versione 1.10: Aggiunto il get_pty kwarg.

    get_host_keys()¶

    Ottieni l’oggetto locale HostKeys. Questo può essere usato per esaminare le chiavi host locali o cambiarle.

    Ritorna:

    le chiavi host locali come oggetto HostKeys.

    get_transport()¶

    Ritorna il sottostante Transport oggetto per questa connessione SSH.Questo può essere usato per eseguire compiti di livello inferiore, come l’apertura di specifici canali.

    Ritorna:

    il Transport per questa connessione

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

    Avvia una sessione interattiva di shell sul server SSH. Un nuovo Channel viene aperto e connesso ad uno pseudo-terminale utilizzando il tipo e la dimensione del terminale richiesto.

    Parametri:

    • termine (str) – il tipo di terminale da emulare (per esempio, "vt100")
    • width (int) – la larghezza (in caratteri) della finestra del terminale
    • height (int) – l’altezza (in caratteri) della finestra del terminale
    • width_pixels (int) – la larghezza (in pixel) della finestra del terminale
    • height_pixels (int) – l’altezza (in pixel) della finestra del terminale
    • environment (dict) – l’ambiente del comando

    Returns:

    un nuovo Channel collegato alla shell remota

    Risulta:

    SSHException – se il server non riesce ad invocare una shell

    load_host_keys(filename)¶

    Carica le chiavi host da un file host-key locale. Le chiavi host lette con questo metodo saranno controllate dopo le chiavi caricate tramite load_system_host_keys, ma saranno salvate di nuovo da save_host_keys (così possono essere modificate).La politica delle chiavi host mancanti AutoAddPolicy aggiunge le chiavi a questo insieme e le salva, quando ci si connette a un server precedentemente sconosciuto.

    Questo metodo può essere chiamato più volte. Ogni nuovo insieme di chiavi di host sarà fuso con l’insieme esistente (il nuovo sostituisce il vecchio se ci sono conflitti). Quando si salva automaticamente, viene usato l’ultimo hostname.

    Parametri:

    filename (str) – il nome del file da leggere

    Risorse:

    IOError – se il nome del file non può essere letto

    load_system_host_keys(filename=None)¶

    Carica chiavi host da un file di sistema (di sola lettura). Le chiavi host lette con questo metodo non saranno salvate da save_host_keys.

    Questo metodo può essere chiamato più volte. Ogni nuovo insieme di chiavi di host sarà fuso con l’insieme esistente (il nuovo sostituisce il vecchio se ci sono conflitti).

    Se filename è lasciato come None, sarà fatto un tentativo di leggere le chiavi dal file locale “hosts conosciuti” dell’utente, come usato da OpenSSH, e nessuna eccezione sarà sollevata se il file non può essere letto. Questo è probabilmente utile solo su posix.

    Parametri:

    nome del file (str) – il nome del file da leggere, o None

    Risorse:

    IOError -se è stato fornito un nome di file e il file non può essere letto

    open_sftp()¶

    Apri una sessione SFTP sul server SSH.

    Ritorna:

    un nuovo oggetto SFTPClient sessione

    save_host_keys(filename)¶

    Salva le chiavi host in un file. Solo le chiavi host caricate conload_host_keys (più quelle aggiunte direttamente) saranno salvate – non le chiavi host caricate con load_system_host_keys.

    Parametri:

    filename (str) – il nome del file in cui salvare

    Risorse:

    IOError – se il file non può essere scritto

    set_log_channel(nome)¶

    Imposta il canale per il log. Il default è "paramiko.transport"ma può essere impostato a qualsiasi cosa si voglia.

    Parametri:

    name (str) – nuovo nome del canale per il logging

    set_missing_host_key_policy(policy)¶

    Imposta la policy da usare quando ci si connette a server senza una chiave host nota.

    Specificamente:

    • Una policy è una “classe di policy” (o una sua istanza), cioè una sottoclasse di MissingHostKeyPolicy come RejectPolicy (thedefault), AutoAddPolicyWarningPolicy, o una sottoclasse creata dall’utente.
    • Una chiave host è conosciuta quando appare nelle strutture delle chiavi host nella cache dell’oggetto client (quelle manipolate da load_system_host_keyse/o load_host_keys).

    Parametri:

    policy (MissingHostKeyPolicy) – la policy da usare quando si riceve una chiave host da un server precedentemente sconosciuto

    classparamiko.client.WarningPolicy

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *