ssh

NOME
     ssh — OpenSSH, client SSH (programma per connessione remota)

SINTASSI
     ssh [-l nome_utente] nomehost | utente@nomehost [comando]

     ssh [-afgknqstvxACNPTX1246] [-b indirizzo_di_bind] [-c tipi_di_cifratura]
     [-e caratt_di_escape] [-i file_di_identificazione] [-l nome_utente] [-m
     mac_spec] [-o opzione] [-p porta] [-F file_config] [-L
     porta:host:portahost] [-R porta:host:portahost] [-D porta] nomehost |
     utente@nomehost [comando]

DESCRIZIONE
     ssh (client SSH) è un programma per connettersi ad una macchina remota e
     per eseguirvi comandi.  È destinato a sostituire rlogin e rsh e a
     permettere comunicazioni sicure con cifratura tra due host non fidati,
     attraverso una rete non sicura.  Attraverso il canale sicuro così creato,
     possono essere effettuate anche le connessioni X11 e ogni connessione
     attraverso qualunque porta TCP/IP.

     ssh connette e permette di accedere ad una shell dell'host nomehost.
     L'utente deve provare la propria identità alla macchina remota utilizzando
     uno dei vari metodi dipendenti dalla versione di protocollo usata:

   Protocollo SSH, versione 1
     Anzitutto, se la macchina con la quale l'utente si connette è elencata nei
     file della macchina remota /etc/hosts.equiv o in /etc/ssh/shosts.equiv e se
     i nomi di utente sono gli stessi da entrambe le parti, l'utente ha accesso
     immediato. Inoltre, se nella directory personale (home) dell'utente sulla
     macchina remota esistono i file .rhosts o .shosts e se in questi file c'è
     una riga che contiene il nome della macchina client e il nome dell'utente
     su quella macchina, l'utente ha l'accesso consentito.  Solitamente questa
     forma di autenticazione non viene permessa dal server, perché è insicura.

     Il secondo metodo di autenticazione unisce l'uso dei file rhosts o
     hosts.equiv con l'autenticazione dell'host basata su RSA.  Ciò significa
     che la connessione è permessa solo quando è consentita da $HOME/.rhosts,
     $HOME/.shosts, /etc/hosts.equiv, o /etc/ssh/shosts.equiv e inoltre solo
     quando il server può verificare la chiave dell'host client (si veda
     /etc/ssh/ssh_known_hosts e $HOME/.ssh/known_hosts nella sezione FILE).
     Questo metodo di autenticazione chiude i buchi di sicurezza dovuti allo
     spoofing di IP, DNS e routing.  [Nota per l'amministratore:
     /etc/hosts.equiv, $HOME/.rhosts e il protocollo rlogin/rsh in generale,
     sono intrinsecamente insicuri e dovrebbero essere disabilitati per poter
     attuare misure di sicurezza].

     Come terzo metodo di autenticazione, ssh supporta l'autenticazione basata
     su RSA.  Lo schema di funzionamento è basato sulla cifratura a chiave
     pubblica: esistono sistemi di cifratura in cui la codifica e la decodifica
     vengono fatte usando chiavi diverse e non è possibile dedurre la chiave di
     decodifica da quella di codifica.  RSA è uno di questi sistemi.  L'idea è
     che ogni utente si crei una coppia di chiavi pubblica/privata da usare per
     l'autenticazione.  Il server conosce la chiave pubblica e solo l'utente
     conosce quella privata.  Il file $HOME/.ssh/authorized_keys contiene un
     elenco delle chiavi pubbliche cui è consentita la connessione.  Quando
     l'utente prova a connettersi il programma ssh informa il server riguardo
     alla coppia di chiavi che si vuole usare per l'autenticazione.  Il server
     verifica se quella chiave è consentita; se è così, invia all'utente (più
     precisamente al programma ssh funzionante a beneficio dell'utente) un
     «challenge», cioè una richiesta nella forma di un numero casuale cifrato
     con la chiave pubblica dell'utente.  Il numero può essere decifrato
     soltanto utilizzando la chiave privata adatta.  Quindi, il programma client
     dell'utente decifra il numero utilizzando la chiave privata, dando prova di
     conoscere la chiave privata ma senza doverla comunicare al server.

     ssh implementa il protocollo di autenticazione RSA in modo automatico.
     L'utente crea la propria coppia di chiavi per RSA utilizzando il programma
     ssh-keygen(1).  Questo programma salva la chiave privata in
     $HOME/.ssh/identity e la chiave pubblica nel file $HOME/.ssh/identity.pub
     presente nella directory home dell'utente.  L'utente, quindi, dovrebbe
     copiare identity.pub nella propria directory personale della macchina
     remota, rinominandolo come $HOME/.ssh/authorized_keys (il file
     authorized_keys corrisponde al file convenzionale $HOME/.rhosts ed ha una
     chiave per riga; nonostante questo le righe possono essere molto lunghe).
     Fatto ciò, l'utente può connettersi senza dover fornire la password.
     L'autenticazione RSA è molto più sicura dell'autenticazione basata su
     rhosts.

     La maniera più conveniente per utilizzare l'autenticazione RSA può essere
     tramite un agente di autenticazione.  Per altre informazioni in merito, si
     veda ssh-agent(1).

     Se i metodi di autenticazione falliscono, ssh richiede una password
     all'utente.  La password viene inviata all'host remoto affinché possa
     verificarla; tuttavia, poiché tutte le comunicazioni vengono cifrate, la
     password non può essere scoperta da qualcuno in ascolto sulla rete.

   Protocollo SSH, versione 2
     Metodi di autenticazione simili a quelli appena illustrati sono disponibili
     anche per utenti che si connettono usando la versione 2 del protocollo.
     Usando i valori predefiniti per PreferredAuthentications, il client proverà
     dapprima il metodo basato su host; se questo metodo fallisce viene tentato
     quello dell'autenticazione con la chiave pubblica; infine, se anche questo
     metodo fallisce, viene provato il metodo interattivo per l'autenticazione
     con password.

     Il metodo della chiave pubblica è simile all'autenticazione RSA descritta
     nella precedente sezione e permette l'impiego dell'algoritmo (RSA o DSA):
     il client utilizza la sua chiave privata, $HOME/.ssh/id_dsa o
     $HOME/.ssh/id_rsa, per firmare l'identificatore di sessione e ne invia
     l'esito al server.  Il server verifica se la chiave pubblica corrispondente
     è elencata in $HOME/.ssh/authorized_keys; se entrambe le chiavi vengono
     trovate e la firma è corretta, allora viene accordato l'accesso.
     L'identificatore di sessione è ricavato dal valore condiviso Diffie-
     Hellman, noto soltanto a client e server.

     Se l'autenticazione con chiave pubblica fallisce o non è disponibile, per
     dimostrare l'identità dell'utente si può inviare una password cifrata
     all'host remoto.

     Inoltre, ssh supporta l'autenticazione basata su host o con risposta a un
     challenge.

     Il protocollo 2 fornisce meccanismi aggiuntivi di segretezza (il traffico
     viene cifrato usando 3DES, Blowfish, CAST128 o Arcfour) e integrità (hmac-
     md5, hmac-sha1).  Si noti che al protocollo 1 manca un solido meccanismo
     per assicurare l'integrità della connessione.

   Sessione di login e esecuzione remota
     Quando l'identità dell'utente è stata accertata dal server, il server o
     esegue il comando impartito o permette all'utente l'accesso alla macchina
     remota tramite una normale shell.  Tutte le comunicazioni con il comando
     remoto o la shell saranno cifrate automaticamente.

     Se è stato allocato uno pseudo-terminale (per una normale sessione di
     login), l'utente può utilizzare i caratteri di escape riportati più sotto.

     Se non è stata allocata alcuna pseudo tty, la sessione è trasparente e può
     essere utilizzata per trasferire dati binari in modo affidabile.  Sulla
     maggior parte dei sistemi, la sessione sarà resa trasparente anche mediante
     impostazione del carattere di escape a “none”, anche se viene usata una
     tty.

     La sessione termina quando si conclude il comando o la shell sulla macchina
     remota e tutte le connessioni X11 e TCP/IP sono state chiuse.  L'exit
     status del programma remoto viene restituito come exit status di ssh.

   Caratteri di escape
     Quando viene richiesto uno pseudo terminale, ssh supporta numerose funzioni
     per mezzo dei caratteri di escape.

     Una singola tilde può essere inviata come ~~ oppure facendo seguire la
     tilde da un carattere diverso da quelli descritti di seguito.  Affinché il
     carattere di escape sia interpretato come speciale, esso deve seguire
     sempre un newline.  Il carattere di escape può essere modificato nei file
     di configurazione usando la direttiva di configurazione EscapeChar oppure
     usando l'opzione -e a riga di comando.

     I caratteri di escape supportati (assumendo quello predefinito ‘~’) sono:

     ~.      Disconnette

     ~^Z     Mette ssh in background

     ~#      Elenca le connessioni inoltrate

     ~&      Mette ssh in background al momento della disconnessione, quando
             attende la conclusione delle connessioni inoltrate o delle sessioni
             X11

     ~?      Visualizza l'elenco dei caratteri di escape

     ~C      Apre la linea di comando (utile solo per aggiungere l'inoltro di
             porte usando le opzioni -L e -R )

     ~R      Richiede la reimpostazione della cifratura (possibile solo con la
             versione 2 del protocollo SSH e a patto che anche la controparte ne
             dia supporto)

   Inoltro di X11 e TCP
     Se la variabile ForwardX11 è impostata a “yes” (si veda la descrizione
     delle opzioni -X e -x descritte più avanti) e l'utente sta usando X11 (con
     impostata la variabile d'ambiente DISPLAY), la connessione a X11 viene
     automaticamente inoltrata alla parte remota in modo tale che ogni programma
     (o comando) X11 avviato dalla shell viaggerà attraverso il canale cifrato e
     la connessione al server X effettivo sarà gestita dalla macchina locale.
     L'utente non deve impostare manualmente DISPLAY.  L'inoltro delle
     connessioni X11 può essere configurato a riga di comando o nei file di
     configurazione.

     Il valore di DISPLAY impostato da ssh punterà alla macchina che fa da
     server, ma con un numero di display maggiore di zero; questo è normale e
     succede perché ssh crea un server X “proxy” sulla macchina server per
     inoltrare le connessioni attraverso il canale cifrato.

     ssh imposterà automaticamente anche i dati di Xauthority sulla macchina
     server.  A tale scopo, essa genererà un cookie di autorizzazione casuale,
     lo salverà in Xauthority posto sul server e verificherà che ogni
     connessione inoltrata si porti dietro questo cookie e lo sostituisca con il
     vero cookie quando la connessione viene aperta.  Il cookie di
     autenticazione vero non viene mai inviato alla macchina server (e nessun
     cookie viene inviato in chiaro).

     Se la variabile ForwardAgent è impostata a “yes” (oppure si vedano le
     opzioni -A e -a descritte più avanti) e l'utente sta usando un agente di
     autenticazione, la connessione a questo agente viene automaticamente
     inoltrata alla parte remota.

     L'inoltro di connessioni TCP/IP arbitrarie attraverso il canale sicuro può
     essere specificato sia a riga di comando che in un file di configurazione.
     Una possibile applicazione dell'inoltro TCP/IP è una connessione sicura ad
     un portafoglio elettronico; un altro ancora è l'utilizzo di una connessione
     attraverso i firewall.

   Autenticazione del server
     ssh mantiene e consulta in modo automatico, un database contenente
     l'identificazione di tutti gli host con cui è stato usato.  Le chiavi degli
     host sono conservate nel file $HOME/.ssh/known_hosts posto nella directory
     personale dell'utente.  Inoltre, anche il file /etc/ssh/ssh_known_hosts
     viene automaticamente consultato per identificare gli host noti.  Ogni
     nuovo host viene automaticamente aggiunto al file dell'utente.  Se
     l'identificazione di un host dovesse cambiare, ssh vi dà un avvertimento e
     disabilita l'autenticazione della password per prevenire che un cavallo di
     Troia possa carpire la password dell'utente.  Un altro motivo di questo
     meccanismo è quello di evitare attacchi di tipo «man-in-the-middle», che
     altrimenti potrebbero essere usati per aggirare la cifratura.  L'opzione
     StrictHostKeyChecking (si veda più sotto) può essere usata per impedire i
     login a macchine la cui chiave di host non sia nota o sia stata modificata.

     Le opzioni sono le seguenti:

     -a      Disabilita l'inoltro per la connessione dell'agente di
             autenticazione

     -A      Abilita l'inoltro per la connessione dell'agente di autenticazione.
             Questo può essere indicato anche in base all'host, in un file di
             configurazione.  Quest'opzione dovrebbe essere usata con
             attenzione; infatti, gli utenti che possono aggirare i permessi sui
             file dell'host remoto (per il socket di dominio Unix dell'agente)
             possono avere accesso all'agente locale attraverso la connessione
             inoltrata. Un potenziale aggresssore non può ottenere dall'agente
             qualcosa relativo alle chiavi, ma potrebbe tentare alcune
             operazioni che gli permetterebbero di autenticarsi usando le
             identità caricate dall'agente.

     -b indirizzo_di_bind
             Indica l'interfaccia da cui trasmettere su macchine con più
             interfacce o più indirizzi di alias.

     -c blowfish|3des|des
             Seleziona il tipo di cifratura da utilizzare per cifrare la
             sessione.  3des è quello predefinito ed è ritenuto solido.  3des
             (triplo-des) è una cifratura tripla del tipo cifra-decifra-cifra
             con tre chiavi diverse.  blowfish è un tipo di cifratura rapido a
             blocchi (fast block); pare sia molto solido e molto più veloce del
             3des.  des è supportato solo nel client di ssh per garantire
             l'interoperabilità all'indietro con le implementazioni del
             protocollo 1 che non supportano il tipo di cifratura 3des.  Il suo
             utilizzo è fortemente sconsigliato per via della sua debolezza.

     -c tipi_di_cifratura
             Inoltre, con la versione 2 del protocollo possono essere indicati
             più tipi di cifratura separati da virgole, riportati in ordine di
             preferenza.  Si veda tipi_di_cifratura per altre informazioni.

     -e ch|^ch|none
             Imposta il carattere di escape per le sessioni con un pty
             (predefinito come ‘~’).  Il carattere di escape viene accettato
             solo all'inizio di una riga.  Se è seguito da un punto (‘.’) chiude
             la connessione; se è seguito da control-Z sospende la connessione;
             se è seguito da sé stesso invia un carattere di escape.  Se si
             imposta il carattere a “none” si disabilita ogni tipo di escape e
             si rende la sessione del tutto trasparente.

     -f      Ordina a ssh di andare in background poco prima dell'esecuzione del
             comando.  Questo è utile quando ssh richiede le password, ma
             l'utente ne voglia comunque l'esecuzione in background.
             Quest'opzione richiede -n.  Per avviare programmi X11 presso un
             sito remoto, si raccomanda di farlo in un modo come questo: ssh -f
             host xterm.

     -g      Permette all'host remoto di connettersi alle porte locali concesse
             all'inoltro.

     -i file_di_identificazione
             Seleziona un file dal quale verranno lette le chiavi private di
             identificazione per l'autenticazione RSA o DSA.  Il file
             predefinito per il protocollo 1 è $HOME/.ssh/identity; quelli
             predefiniti per il protocollo 2 sono $HOME/.ssh/id_rsa e
             $HOME/.ssh/id_dsa.  I file di identificazione possono essere
             indicati anche in base all'host nel file di configurazione.  È
             possibile utilizzare più opzioni -i (e si potranno indicare più
             chiavi di identificazione nei file di configurazione).

     -I dispositivo_smartcard
             Indica il dispositivo di smartcard da usare. L'argomento è il
             dispositivo che ssh deve usare per comunicare con una smartcard
             usata per conservare la chiave privata RSA dell'utente.

     -k      Disabilita l'inoltro dei ticket di Kerberos e dei token AFS.  Può
             essere indicato anche in base all'host nel file di configurazione.

     -l nome_login
             Indica il nome dell'utente con il quale ci si vuole connettere alla
             macchina remota.  Può essere indicato anche in base all'host nel
             file di configurazione.

     -m mac_spec
             Con la versione 2 del protocollo può essere indicato un elenco di
             algoritmi MAC (message authentication code), separati da virgole e
             indicati in ordine di preferenza.  Per altre informazioni si veda
             la parola chiave MACs.

     -n      Ridirige lo stdin da /dev/null (usato, in realtà, per impedire la
             lettura da stdin).  Va usato quando ssh è eseguito in background.
             Uno stratagemma di uso comune consiste nell'utilizzare
             quest'opzione per eseguire i programmi X11 su una macchina remota.
             Per esempio, ssh -n shadows.cs.hut.fi emacs & eseguirà emacs su
             shadows.cs.hut.fi e la connessione X11 sarà automaticamente
             inoltrata attraverso un canale cifrato.  Il programma ssh sarà
             messo in background.  (questo non funzionerà se ssh dovrà
             richiedere l'immissione di una password; si veda anche l'opzione
             -f).

     -N      Non esegue un comando remoto; è utile quando si vuole fare
             l'inoltro delle sole porte (solo con la versione 2 del protocollo).

     -o opzione
             Può essere usata per far accettare opzioni espresse nel formato dei
             file di configurazione.  È utile per indicare opzioni per le quali
             non esista un flag unico per la linea di comando.

     -p porta
             La porta cui connettersi sull'host remoto; può esserne indicata una
             per ogni host nel file di configurazione.

     -q      Modalità silente.  Evita l'emissione di tutti i messaggi
             diagnostici e d'avvertimento.

     -s      Può essere usata per chiedere l'invocazione di un sottosistema sul
             sistema remoto. L'impiego dei sottosistemi è una caratteristica del
             protocollo SSH2 che facilita l'utilizzo di SSH come trasporto
             sicuro per altre applicazioni (ad es. sftp). Il sottosistema viene
             indicato nella forma di un comando remoto.

     -t      Forza l'allocazione di uno pseudo-terminale (pseudo-tty).  Può
             essere usata per eseguire qualsiasi programma fondato sull'uso
             dello schermo su una macchina remota; può essere molto utile, ad
             esempio per sviluppare servizi selezionabili attraverso menu.
             Usando più opzioni -t si forza l'allocazione del tty, anche se ssh
             non ne ha nessuno locale.

     -T      Disabilita l'allocazione di pseudo-tty.

     -v      Modalità prolissa.  Ordina a ssh di stampare i messaggi che ne
             descrivono il progresso delle attività.  È utile per monitorare i
             problemi di connessione, autenticazione e configurazione.  Usando
             più opzioni -v si aumenta il volume dei messaggi; se ne possono
             usare un massimo di 3.

     -x      Disabilita l'inoltro (detto anche 'forward') di connessioni X11.

     -X      Abilita l'inoltro di connessioni X11.  Quest'opzione può anche
             essere indicata una per ogni host in un file di configurazione.
             L'inoltro di X11 dovrebbe essere abilitato con attenzione; infatti,
             gli utenti che possono aggirare i permessi sui file dell'host
             remoto (per il database delle autorizzazioni X dell'utente) possono
             avere accesso al display X11 locale attraverso la connessione
             inoltrata.  Un potenziale aggressore potrebbe essere quindi in
             grado di compiere azioni come l'intercettazione dei tasti premuti.

     -C      Richiede la compressione di tutti i dati (compresi quelli di stdin,
             stdout, stderr e i dati per l'inoltro delle connessioni X11
             TCP/IP).  L'algoritmo di compressione è lo stesso utilizzato da
             gzip(1) e il “livello” di compressione può essere regolato con
             l'opzione CompressionLevel (si veda più sotto).  La compressione è
             auspicabile per connessioni lente come quelle via modem, ma tende a
             rallentare le connessioni veloci.  Nei file di configurazione può
             essere indicato un valore predefinito per ogni host; si veda
             l'opzione Compression descritta più sotto.

     -F file_config
             Indica di utilizzare un file di configurazione alternativo,
             specifico dell'utente, nel qual caso verrà ignorato il file di
             configurazione generale (/etc/ssh/ssh_config).  Il file di
             configurazione predefinito per ogni utente è $HOME/.ssh/config.

     -L porta:host:portahost
             Indica che la porta sull'host locale (il client) viene messa in
             comunicazione con host e porta relativi al sistema remoto.  Ciò
             viene effettuato allocando un socket che ascolta sulla porta del
             sistema locale; qualora venisse usata questa porta per effettuare
             la connessione, quest'ultima verrebbe inoltrata attraverso il
             canale sicuro, così da connettere l'host locale con l' host remoto
             attraverso la sua porta portahost.  La porta per la connessione può
             essere indicata anche in un file di configurazione.  Solo l'utente
             root può indicare porte privilegiate per le connessioni.  Gli
             indirizzi IPv6 possono essere indicati con una sintassi
             alternativa: porta/host/portahost

     -R porta:host:portahost
             Indica che una certa porta dell'host remoto (il server) viene messa
             in comunicazione con host e porta del sistema locale.  Ciò viene
             effettuato allocando un socket che ascolta sulla porta del sistema
             remoto; qualora questa porta venisse usata per effettuare la
             connessione, questa verrebbe inoltrata attraverso il canale sicuro,
             così da connettere l' host remoto con quello locale attraverso la
             sua porta portahost. La porta per la connessione può essere
             indicata anche in un file di configurazione.  Le porte privilegiate
             possono essere utilizzate solo quando si è connessi come root sulla
             macchina remota.  Gli indirizzi IPv6 possono essere indicati con
             una sintassi alternativa: porta/host/portahost

     -D porta
             Indica una porta locale “dinamica” a livello di applicazione da
             usare per la comunicazione.  Ciò viene effettuato allocando un
             socket che ascolta sulla porta del sistema locale; qualora questa
             porta venisse usata per effettuare la connessione, questa verrebbe
             inoltrata attraverso il canale sicuro e il protocollo
             dell'applicazione viene usato per determinare dove va effettuata la
             connessione dalla macchina remota. Attualmente è supportato il
             protocollo SOCKS4 e ssh funzionerà come server SOCKS4.  Solo
             l'utente root può indicare porte privilegiate per le connessioni.
             La porta dinamica da usare per le connessioni può essere indicata
             anche nel file di configurazione.

     -1      Forza ssh ad utilizzare soltanto la versione 1 del protocollo.

     -2      Forza ssh ad utilizzare soltanto la versione 2 del protocollo.

     -4      Forza ssh ad utilizzare soltanto gli indirizzi di IPv4.

     -6      Forza ssh ad utilizzare soltanto gli indirizzi di IPv6.

FILE DI CONFIGURAZIONE
     ssh può ottenere informazioni ulteriori da due file di configurazione, di
     cui uno è generale e valido per tutti gli utenti, mentre l'altro è
     specifico per singolo utente. Formato e opzioni dei file di configurazione
     sono descritti in ssh_config(5).

AMBIENTE
     Normalmente, ssh imposta le seguenti variabili d'ambiente:

     DISPLAY
             La variabile DISPLAY indica la collocazione del server X11.  È
             impostata automaticamente da ssh per puntare ad un valore della
             forma “nomehost:n” dove nomehost indica l'host su cui è in
             esecuzione la shell; n è un intero >= 1.  ssh utilizza questo
             valore particolare per inoltrare le connessioni X11 attraverso un
             canale sicuro.  Di norma, l'utente dovrebbe evitare di impostare
             esplicitamente DISPLAY, poiché ciò renderebbe insicura la
             connessione X11 (e costringerebbe l'utente a copiare manualmente
             tutti i cookie di autorizzazione).

     HOME    Imposta il percorso della directory personale dell'utente (home).

     LOGNAME
             È un sinonimo per USER; va impostata per mantenere la compatibilità
             coi sistemi che usano questa variabile.

     MAIL    Impostarla al percorso della mailbox dell'utente.

     PATH    Impostarla al percorso predefinito PATH, come specificato in fase
             di compilazione di ssh.

     SSH_ASKPASS
             Se ssh è stato eseguito da un terminale e richiede una passphrase,
             la leggerà dal terminale corrente.  Se ssh non ha un terminale
             associato ma sono impostate le variabili DISPLAY e SSH_ASKPASS,
             verrà eseguito il programma specificato da SSH_ASKPASS e sarà
             aperta una finestra X11 per leggere la passphrase.  Questo risulta
             particolarmente utile quando si esegue ssh dall'interno di una
             .Xsession o mediante script correlati (Si noti che, per effettuare
             questo lavoro, su alcune macchine può essere necessario ridirigere
             l'input da /dev/null).

     SSH_AUTH_SOCK
             Identifica il percorso di un socket di dominio unix usato per
             comunicare con l'agente.

     SSH_CONNECTION
             Identifica il client e il server terminali della connessione.  La
             variabile contiene quattro valori separati da spazi: l'indirizzo ip
             del client, il suo numero di porta, l'ip del server e il suo numero
             di porta.

     SSH_ORIGINAL_COMMAND
             La variabile contiene il comando originale nel caso in cui sia
             stato eseguito un comando forzato.  Può essere utilizzato per
             estrarre gli argomenti originali.

     SSH_TTY
             È impostata al nome del terminale tty (il percorso del dispositivo)
             associato alla shell corrente o al comando.  Se la sessione
             corrente non ha un tty, questa variabile non è impostata.

     TZ      La variabile del fuso orario (timezone); viene impostata per
             indicare il fuso orario corrente nel caso in cui, all'avvio del
             demone, questo risultasse impostato (in pratica, il demone
             trasmette il valore alle nuove connessioni).

     USER    È impostata al nome dell'utente connesso.

     Inoltre, ssh legge in $HOME/.ssh/environment; le righe del formato
     “VARNAME=valore” vengono aggiunte all'ambiente se questo file esiste e se
     agli utenti è permesso cambiare il loro ambiente.  Si veda l'opzione

PermitUserEnvironment
     in sshd_config(5).

FILE
     $HOME/.ssh/known_hosts
             Registra le chiavi di host di tutti gli host a cui l'utente si è
             connesso e che non sono presenti in /etc/ssh/ssh_known_hosts.  Si
             legga sshd(8).

     $HOME/.ssh/identity, $HOME/.ssh/id_dsa, $HOME/.ssh/id_rsa
             Contengono le identificazioni per l'autenticazione dell'utente,
             Sono file specifici per il protocollo 1 RSA, protocollo 2 DSA e
             protocollo 2 RSA, rispettivamente.  Questi file contengono dati
             sensibili e dovrebbero essere leggibili dall'utente ma non
             accessibili da altri (per lettura/scrittura/esecuzione).  Si noti
             che ssh ignora un file di chiave privata se è accessibile da altri.
             Nel generare la chiave, è possibile indicare una passphrase, che
             sarà usata per cifrare la parte sensibile di questo file mediante
             3DES.

     $HOME/.ssh/identity.pub, $HOME/.ssh/id_dsa.pub, $HOME/.ssh/id_rsa.pub
             Contengono le chiavi pubbliche per l'autenticazione (la parte
             pubblica del file di identificazione in una forma umanamente
             leggibile).  I contenuti del file $HOME/.ssh/identity.pub
             andrebbero aggiunti a $HOME/.ssh/authorized_keys su tutte le
             macchine in cui l'utente desidera connettersi usando la versione 1
             del protocollo ssh con autenticazione RSA.  I contenuti dei file
             $HOME/.ssh/id_dsa.pub e $HOME/.ssh/id_rsa.pub andrebbero aggiunti a
             $HOME/.ssh/authorized_keys su tutte le macchine in cui l'utente
             desidera connettersi usando la versione 2 del protocollo ssh con
             autenticazione DSA/RSA.  Questi file non sono sensibili e possono
             essere eventualmente leggibili per chiunque.  Questi file non sono
             mai usati in modo automatico e non sono necessari; sono forniti
             solo per utilità dell'utente.

     $HOME/.ssh/config
             È il file di configurazione specifico dell'utente.  Il suo formato
             è descritto in ssh_config(5).  Questo file è utilizzato dal client
             ssh.  Solitamente, non contiene alcuna informazione sensibile, ma i
             permessi raccomandati sono quelli di lettura/scrittura per l'utente
             proprietario e nessun permesso per gli altri utenti.

     $HOME/.ssh/authorized_keys
             Elenca le chiavi pubbliche (RSA/DSA) che possono essere usate per
             connettersi come utente proprietario del file.  Il suo formato è
             descritto nella pagina di manuale sshd(8).  Nella sua forma più
             semplice, il formato è identico a quello dei file di
             identificazione .pub.  Questo file non ha un contenuto
             particolarmente sensibile, ma i permessi raccomandati sono quelli
             di lettura/scrittura per l'utente proprietario e nessun permesso
             per gli altri utenti.

     /etc/ssh/ssh_known_hosts
             Elenco globale delle chiavi relative agli host conosciuti.  Questo
             file dovrebbe essere redatto dall'amministratore di sistema e
             dovrebbe ospitare le chiavi pubbliche di host di tutte le macchine
             dell'organizzazione.  Il file dovrebbe essere leggibile per tutti.
             Contiene le chiavi pubbliche, una per riga, nel seguente formato
             (campi separati da spazi): nome di sistema, chiave pubblica e campo
             di commento facoltativo.  Quando vengono usati nomi diversi per la
             stessa macchina, tutti i nomi vanno elencati, separati da virgole.
             il formato è descritto nella pagina di manuale sshd(8).

             Il nome canonico di sistema (quello restituito dai server DNS) è
             utilizzato da sshd(8) per verificare l'host del client all'atto
             della connessione; gli altri nomi sono necessari perché ssh non
             converte il nome fornito dall'utente in un nome canonico prima di
             verificare la chiave; infatti, se qualcuno avesse accesso al server
             DNS, potrebbe ingannare l'autenticazione dell'host.

     /etc/ssh/ssh_config
             File di configurazione globale.  Il formato del file e le opzioni
             di configurazione cono descritte in ssh_config(5).  Questo file
             fornisce i valori predefiniti per quelli non specificati nel file
             di configurazione specifico dell'utente e per quegli utenti privi
             di file di configurazione.  Il file dovrebbe essere leggibile per
             tutti.

     /etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_rsa_key
             Questi tre file contengono le parti private delle chiavi di host e
             sono utilizzati per RhostsRSAAuthentication e
             HostbasedAuthentication.  Se si usa il metodo
             RhostsRSAAuthentication della versione 1 del protocollo, ssh deve
             essere impostato come setuid root, poiché la chiave dell'host è
             leggibile solo dal root.  Con la versione 2 del protocollo, invece,
             per accedere alla chiave dell'host col metodo
             HostbasedAuthentication ssh usa ssh-keysign(8).  In questo modo si
             evita di impostare ssh come setuid root quando si usa quel metodo
             di autenticazione.  Per default, ssh non è impostato come setuid
             root.

     $HOME/.rhosts
             Questo file è utilizzato nell'autenticazione .rhosts per elencare
             la coppie host/utente cui è permessa la connessione (si noti che
             questo file è utilizzato anche da rlogin e rsh, cosa che ne rende
             insicuro l'utilizzo).  Ogni riga del file contiene il nome di un
             host (nella forma canonica restituita dai DNS server) e quello di
             un utente su quell'host, separati da uno spazio.  Su qualche
             macchina può essere necessario rendere leggibile a tutti questo
             file se la directory home dell'utente è ospitata su una partizione
             NFS, perché sshd(8) lo legge come root.  Inoltre, questo file deve
             appartenere all'utente e il permesso di scrittura non deve essere
             concesso a nessun altro.  I permessi raccomandati per la
             maggioranza della macchine sono di lettura/scrittura per l'utente
             proprietario, e nessun permesso per tutti gli altri utenti.  Si
             noti che come comportamento predefinito sshd(8) sarà installato in
             modo tale da richiedere un'autenticazione di host RSA prima di
             permettere l'autenticazione .rhosts.  Se la macchina server non ha
             la chiave di host del client in /etc/ssh/ssh_known_hosts, essa può
             essere conservata in $HOME/.ssh/known_hosts.  Il modo più facile
             per farlo è tramite una connessione dal server al client usando
             ssh, che permette di aggiungere automaticamente la chiave di host a
             $HOME/.ssh/known_hosts.

     $HOME/.shosts
             Questo file è utilizzato esattamente come .rhosts.  Il motivo di
             utilizzare questo file è di poter usare l'autenticazione rhosts con
             ssh senza permettere la connessione con rlogin(1) o rsh(1).

     /etc/hosts.equiv
             Questo file è usato durante l'autenticazione .rhosts.  Esso
             contiene i nomi di host canonici, uno per riga (il loro formato
             completo è descritto nella pagina di manuale di sshd(8) ). Se
             l'host client è citato in questo file, la connessione viene
             concessa automaticamente purché il nome di utente sia lo stesso sul
             client e sul server.  Inoltre, di solito viene richiesta
             l'autenticazione RSA dell'host.  Questo file dovrebbe essere
             scrivibile solo dal root.

     /etc/ssh/shosts.equiv
             Questo file viene elaborato nello stesso modo di /etc/hosts.equiv.
             Può essere utile per permettere le connessioni utilizzando ssh ma
             non usando rsh/rlogin.

     /etc/ssh/sshrc
             I comandi in questo file vengono eseguiti da ssh esattamente prima
             dell'avvio della shell (o del comando).  Per altre informazioni, si
             legga la pagina di manuale sshd(8).

     $HOME/.ssh/rc
             I comandi in questo file vengono eseguiti da ssh esattamente prima
             dell'avvio della shell (o del comando).  Per altre informazioni, si
             legga la pagina di manuale sshd(8).

     $HOME/.ssh/environment
             Contiene le definizioni aggiuntive per le variabili di ambiente; si
             legga la sezione AMBIENTE più sopra.

DIAGNOSTICA
     Se si presenta un errore, ssh esce con l'exit status del comando remoto o
     con 255.

AUTORI
     OpenSSH è un derivato della versione originale e libera ssh 1.2.12 di Tatu
     Ylonen.  Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de
     Raadt e Dug Song ne hanno eliminato molti bug, vi hanno reinserito
     funzionalità più recenti e hanno creato OpenSSH.  Markus Friedl ha
     contributo con il supporto per le versioni 1.5 e 2.0 del protocollo SSH.

VEDERE ANCHE
     rsh(1), scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1),
     telnet(1), ssh_config(5), ssh-keysign(8), sshd(8).

     Traduzione di Fabio Teatini. Revisione di Valentino Squilloni.

     T. Ylonen, T. Kivinen, M. Saarinen, T. Rinne, and S. Lehtinen, SSH Protocol
     Architecture, draft-ietf-secsh-architecture-09.txt, luglio 2001,
     documentazione in continua evoluzione.