Manpages

NOME

ssh_config — file di configurazione per il client SSH di OpenSSH

SINTASSI
$HOME/.ssh/config
/etc/ssh/ssh_config

DESCRIZIONE

ssh ottiene i dati della configurazione dalle fonti seguenti (nell’ordine dato):

1.

opzioni sulla linea di comando

2.

file di configurazione dell’utente ($HOME/.ssh/config)

3.

file di configurazione generale (/etc/ssh/ssh_config)

Ad ognuno dei parametri verrà assegnato il primo valore ottenuto. I file di configurazione contengono sezioni segnalate dalla parola chiave ’’Host’’ con accanto modelli descrittori di host (o pattern); ogni sezione si applica soltanto a quegli host che soddisfano uno dei modelli dati nella descrizione. Il nome d’host digitato sulla linea di comando verrà confrontato con i modelli delle descrizioni.

Dal momento che di ogni parametro verrà utilizzato il primo valore ottenuto, le eventuali dichiarazioni multiple specifiche per host dovrebbero essere fornite all’inizio del file, mentre quelle generali (valide per tutti gli host) dovrebbero trovarsi in coda.

Il file di configurazione ha il formato seguente:

Le linee vuote e quelle che iniziano per ’#’ sono commenti.

In tutti gli altri casi, una linea avrà il formato ’’parola-chiave argomenti’’. Le opzioni di configurazione possono essere separate semplicemente da spazi, oppure da spaziature e un solo segno di uguaglianza ’=’; quest’ultimo formato è utile quando venissero indicate le opzioni di configurazione −o (valide per ssh, scp e sftp), per evitare di dover mettere gli spazi tra virgolette.

Le parole chiave utilizzabili, insieme ai loro significati, sono elencate di seguito (si noti che le parole chiave possono essere indicate tanto in lettere maiuscole che in minuscole, mentre per gli argomenti questo non è più vero):

Host

Circoscrive le dichiarazioni successive (fino alla susseguente parola chiave Host) ai soli host corrispondenti ai modelli forniti dopo la parola chiave. Nei modelli possono essere usati i metacaratteri ’*’ e ’’?. Un singolo metacarattere ’*’ rappresenta tutti gli host. L’host è l’argomento nomehost fornito sulla linea di comando (cioè, il nome non viene convertito in un nome di host regolare prima del confronto col modello).

AFSTokenPassing

Indica il passaggio dei token AFS all’host remoto. L’argomento per questa parola chiave deve essere ’’yes’’ o ’’no’’. Quest’opzione si applica alla sola versione 1 del protocollo.

BatchMode

Se impostata a ’’yes’’, la richiesta della password viene disabilitata. Quest’opzione è utile negli script e negli altri job eseguiti in batch (ossia in sequenza) per i quali nessun utente può essere presente per fornire la password. L’argomento deve essere ’’yes’’ o ’’no’’ ed è predefinito come ’’no’’.

BindAddress

Indica l’interfaccia da cui trasmettere per macchine con più interfacce o più indirizzi di alias. Si noti che quest’opzione non funziona se UsePrivilegedPort è impostata a ’’yes’’.

ChallengeResponseAuthentication

Indica se va usata l’autenticazione con risposta a challenge. L’argomento di questa parola chiave deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’yes’’.

CheckHostIP

Se quest’opzione è impostata a ’’yes’’, ssh controllerà anche l’indirizzo IP dell’host nel file known_hosts. Questo permette a ssh di accorgersi se la chiave di un host è cambiata a causa dello spoofing del DNS. Se l’opzione è impostata a ’’no’’, il controllo non sarà eseguito. È predefinita a ’’yes’’.

Cipher

Indica il tipo di cifratura da utilizzare per cifrare la sessione nella versione 1 del protocollo. Attualmente sono supportati ’’blowfish’’, ’’3des’’, e ’’des’’. des è supportato soltanto nel client di ssh_config per mantenere l’interoperabilità con le precedenti implementazioni effettuate con il protocollo 1, cioè quelle che non supportano la cifratura 3des. Il suo utilizzo è fortemente sconsigliato a causa della sua debolezza. Il tipo di cifratura predefinito è ’’3des’’.

Ciphers

Indica i tipi di cifratura consentiti per la versione 2 del protocollo, in ordine di preferenza. I tipi di cifratura devono essere separati da virgole. Il valore predefinito è:

’’aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,
aes192-cbc,aes256-cbc’’

ClearAllForwardings

Indica che tutte le porte locali, remote e dinamiche, indicate per l’inoltro della connessione nel file di configurazione o sulla linea di comando, vanno azzerate. Quest’opzione è utile principalmente quando è usata con ssh_config sulla linea di comando, per azzerare le porte di inoltro della connessione impostate nei file di configurazione; è impostata automaticamente da scp(1) e sftp(1). L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’no’’.

Compression

Indica se utilizzare o meno la compressione. L’argomento deve essere ’’yes’’ o ’’no’’ ed è predefinito come ’’no’’.

CompressionLevel

Se è stata abilitata la compressione, quest’opzione indica il livello di compressione da impiegare. L’argomento deve essere un intero da 1 (rapido) a 9 (lento, massimo). Il livello predefinito è 6, valido per la maggior parte delle applicazioni. Il significato dei valori è identico a quello di gzip(1). Si noti che quest’opzione si applica alla sola versione 1 del protocollo.

ConnectionAttempts

Indica il numero di tentativi da effettuare (uno al secondo) prima di ritornare nella rsh o prima dell’uscita. L’argomento deve essere un numero intero. Può essere utile negli script, quando la connessione tenda a cadere. Il valore predefinito è 1.

DynamicForward

Indica che una porta TCP/IP sulla macchina locale va utilizzata per l’inoltro della connessione attraverso il canale sicuro e il protocollo dell’applicazione viene usato per determinare dove va effettuata la connessione dalla macchina remota. L’argomento deve essere un numero di porta. Attualmente è supportato il protocollo SOCKS4 e ssh_config funzionerà come server SOCKS4. Possono essere indicate più porte e altre aggiuntive possono essere immesse sulla linea di comando. Solo il superutente può inoltrare le porte privilegiate.

EscapeChar

Imposta il carattere di escape (predefinito come ’~’). Il carattere di escape può essere impostato anche sulla linea di comando. L’argomento deve essere un singolo carattere, ’^’ seguito da una lettera o da ’’none’’ per disabilitare del tutto il carattere di escape (rendendo così trasparente la connessione per i dati binari).

ForwardAgent

Indica se la connessione all’agente di autenticazione (se presente) verrà inoltrata alla macchina remota. L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’no’’.

Questo tipo di inoltro dovrebbe essere abilitato con cautela. Gli utenti che hanno la possibilità di eludere i permessi dei file sull’host remoto (per il socket di dominio Unix dell’agente) possono accedere all’agente locale attraverso la connessione inoltrata. Un aggressore non può ottenere la chiave materiale dall’agente; tuttavia, può effettuare operazioni sulle chiavi per abilitarlo all’autenticazione usando le identità caricate nell’agente.

ForwardX11

Indica se le connessioni X11 verranno ridirette automaticamente attraverso il canale sicuro e se verrà impostata la variabile DISPLAY. L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’no’’.

Questo tipo di inoltro dovrebbe essere abilitato con cautela. Gli utenti che hanno la possibilità di eludere i permessi dei file sull’host remoto (per il database contenente gli utenti autorizzati a X) possono accedere al display X11 locale attraverso la connessione inoltrata. Un aggressore può essere in grado di effettuare azioni come il controllo della digitazione dei tasti.

GatewayPorts

Indica se gli host remoti possono connettersi alle porte locali inoltrate. Come comportamento predefinito, ssh_config vincola l’inoltro delle porte locali all’indirizzo di loopback. Ciò impedisce che host remoti possano connettersi alle porte inoltrate. GatewayPorts può essere usato per indicare che ssh_config vincolerà l’inoltro delle porte locali all’indirizzo espresso attraverso un metacarattere, consentendo in tal modo agli host remoti di connettersi alle porte inoltrate. L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’no’’. È predefinito come ’’no’’.

GlobalKnownHostsFile

Indica un file da utilizzare come database generale delle chiavi per host invece di /etc/ssh/ssh_known_hosts.

HostbasedAuthentication

Indica se vada provata l’autenticazione basata su rhosts con l’autenticazione a chiave pubblica. L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’no’’. È predefinito come ’’no’’. Quest’opzione vale solo per la versione 2 del protocollo ed è simile a RhostsRSAAuthentication.

HostKeyAlgorithms

Indica, in ordine di preferenza, gli algoritmi per la chiave su host (versione 2 del protocollo) che il client userà. Il valore predefinito per quest’opzione è: ’’ssh-rsa,ssh-dss’’.

HostKeyAlias

Indica un alias che andrebbe utilizzato al posto del nome reale dell’host in fase di ricerca del suo indirizzo (look up) o quando si salva la chiave dell’host nei file dei database relativi. Quest’opzione è utile per realizzare connessioni attraverso un tunnel ssh o per far funzionare più server su un singolo host.

HostName

Indica il nome reale dell’host cui connettersi; può essere usato per indicare i nickname o le abbreviazioni degli host. Il nome predefinito è quello dato sulla linea di comando. Anche gli indirizzi IP numerici sono ammessi (sia da linea di comando che attraverso l’indicazione in HostName).

IdentityFile

Indica un file dal quale verrà letta la chiave privata per l’autenticazione RSA o DSA dell’utente. Il file predefinito è $HOME/.ssh/identity per la versione 1 del protocollo, mentre è la coppia $HOME/.ssh/id_rsa e $HOME/.ssh/id_dsa per la versione 2. Inoltre, ogni identificazione rappresentata dall’agente di autenticazione verrà utilizzata per l’autenticazione stessa. All’interno del nome del file può essere usato il carattere tilde (~) per far riferimento alla directory personale (home) dell’utente. È possibile indicare più file di identificazione nei file di configurazione; tutte queste identificazioni verranno provate in successione.

KeepAlive

Indica se il sistema invierà messaggi TCP keepalive all’altro capo della connessione. Se tali messaggi verranno inviati, la caduta della connessione o il crash di una delle macchine saranno opportunamente notificati. Comunque, ciò comporta la caduta delle connessioni qualora l’instradamento fosse temporaneamente disabilitato (down) e qualcuno potrebbe trovarlo fastidioso.

Quest’opzione è predefinita a ’’yes’’ (cioè i messaggi keepalive vengono inviati) e il client segnalerà la disconnessione della rete o il crash dell’host remoto. Questo torna utile negli script e molti utenti ne vorranno trarre beneficio.

Per disattivare l’invio dei messaggi keepalive occorre impostare il valore a ’’no’’.

KerberosAuthentication

Indica se verrà usata l’autenticazione Kerberos. L’argomento di questa parola chiave deve essere ’’yes’’ o ’’no’’.

KerberosTgtPassing

Indica se al server verrà inoltrato un TGT Kerberos. Questo funzionerà soltanto se il server Kerberos è in realtà un kaserver AFS. L’argomento di questa parola chiave deve essere ’’yes’’ o ’’no’’.

LocalForward

Indica che una porta TCP/IP sulla macchina locale venga usata (inoltrata) per la comunicazione (attraverso il canale sicuro) con la macchina remota, attraverso l’indicazione di host e porta. Il primo argomento deve essere un numero di porta, mentre il secondo deve essere host:porta. Gli indirizzi IPv6 possono essere indicati con una sintassi alternativa: host/porta. Gli inoltri (o forward) multipli sono ammessi e quelli aggiuntivi possono essere indicati sulla linea di comando. Soltanto il superutente può effettuare l’inoltro sulle porte privilegiate.

LogLevel

Indica la ricchezza di informazioni utilizzate durante le registrazioni dei messaggi. I valori possibili sono: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 e DEBUG3. Il valore predefinito è INFO. DEBUG e DEBUG1 sono equivalenti. DEBUG2 e DEBUG3 indicano livelli di output sempre più ricchi di informazioni.

MACs

Indica gli algoritmi di MAC (message authentication code) in ordine di preferenza. L’uso degli algoritmo MAC è stato introdotto nella versione 2 del protocollo, per protezione dell’integrità dei dati. Gli algoritmi devono essere separati con virgole. La sequenza predefinita degli algoritmi è ’’hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96’’.

NoHostAuthenticationForLocalhost

Quest’opzione può essere utilizzata se la propria directory personale (home) è condivisa tra più macchine. In questo caso il termine «localhost» farà riferimento ogni volta ad una macchina diversa e l’utente riceverà molti avvisi legati alle variazioni delle chiavi di host. Quest’opzione disabilita l’autenticazione dell’host per localhost. L’argomento di questa parola chiave deve essere ’’yes’’ o ’’no’’. Come comportamento predefinito, la chiave di host del localhost verrà verificata.

NumberOfPasswordPrompts

Indica il numero massimo di richieste della password prima di scollegare l’utente. L’argomento deve essere un intero. Il valore predefinito è 3.

PasswordAuthentication

Indica se deve essere utilizzata l’autenticazione della password. L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’yes’’.

Port

indica il numero di porta dell’host remoto cui connettersi. Il valore predefinito è 22.

PreferredAuthentications

Indica l’ordine in cui il client dovrebbe provare i metodi di autenticazione del protocollo 2. Ciò consente ad un client di preferire un metodo (ad es. keyboard-interactive) ad un altro (ad es. password) Il valore predefinito per quest’opzione è: ’’hostbased,publickey,keyboard-interactive,password’’.

Protocol

Indica, in ordine di preferenza, quali versioni del protocollo dovrebbero essere gestite da ssh_config. I valori possibili sono ’’1’’ e ’’2’’. Si possono indicare più versioni, avendo cura di separarle con virgole. Il valore predefinito è ’’2,1’’. Ciò significa che ssh_config prova prima la versione 2; se questa non fosse disponibile, prova la versione 1.

ProxyCommand

Indica il comando da utilizzare per connettersi al server. La stringa che compone il comando si estende fino alla fine della riga e viene eseguita con /bin/sh. Nella stringa del comando, ’%h’ verrà sostituito con il nome dell’host cui connettersi e ’%p’ con la porta. Il comando può essere uno qualsiasi, che legge dal suo standard input e scrive sul suo standard output; alla fine viene effettuata la connessione a un server sshd(8) in funzione su qualche macchina, oppure ad uno che esegue sshd -i (NdT: l’opzione -i fa eseguire sshd attraverso inetd). La gestione della chiave dell’host sarà effettuata usando il valore di HostName dell’host cui ci si connette (il cui valore predefinito è quello digitato sulla riga di comando dall’utente). Si noti che l’uso di CheckHostIP non è compatibile con una connessione effettuata tramite un comando proxy.

PubkeyAuthentication

Indica se va effettuata l’autenticazione della chiave pubblica. L’argomento di questa parola chiave deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’yes’’. Quest’opzione si applica soltanto alla versione 2 del protocollo.

RemoteForward

Indica che una porta TCP/IP sulla macchina remota deve essere inoltrata dalla macchina locale verso host e porta specificati attraverso il canale sicuro. Il primo argomento deve essere un numero di porta, mentre il secondo deve essere host:porta. Gli indirizzi IPv6 possono essere indicati con una sintassi diversa: host/porta. Possono essere indicati più inoltri; inoltri aggiuntivi possono essere forniti in riga di comando. Solo il superutente può effettuare l’inoltro delle porte privilegiate.

RhostsAuthentication

Indica se va utilizzata l’autenticazione basata sugli rhosts Si noti che questa dichiarazione ha effetto solo per il client e nessuna influenza sulla sicurezza. La maggior parte dei server non permettono l’uso di RhostsAuthentication perché è insicuro (si veda RhostsRSAAuthentication). L’argomento di questa parola chiave deve essere ’’yes’’ o ’’no’’. l valore predefinito è ’’no’’. Quest’opzione si applica alla sola versione 1 del protocollo e necessita che ssh sia impostato come setuid del root e che UsePrivilegedPort sia impostato a ’’yes’’.

RhostsRSAAuthentication

Indica se va utilizzata l’autenticazione basata su rhosts insieme all’autenticazione RSA. L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’no’’. Quest’opzione si applica alla sola versione 1 del protocollo e necessita che ssh sia impostato come setuid del root.

RSAAuthentication

Indica se va provata l’autenticazione RSA. L’argomento di questa parola chiave deve essere ’’yes’’ o ’’no’’. L’autenticazione RSA sarà tentata solo se esiste il file di identificazione, oppure se è in funzione un agente di autenticazione. Il valore predefinito è ’’yes’’. Si noti che quest’opzione si applica alla sola versione 1 del protocollo.

SmartcardDevice

Indica il dispositivo di smartcard da utilizzare. L’argomento di questa parola chiave è il dispositivo che ssh_config dovrebbe utilizzare per comunicare con una smartcard che abbia memorizzata la chiave RSA privata dell’utente. Come valore predefinito, nessun dispositivo è indicato, cosicché il supporto delle smartcard è disattivato.

StrictHostKeyChecking

Se quest’opzione è impostata a ’’yes’’, ssh_config non aggiungerà automaticamente le chiavi degli host al file $HOME/.ssh/known_hosts, e rifiuterà di connettersi agli host la cui chiave host sia stata cambiata. Ciò fornisce una maggior protezione contro gli attacchi mediante cavalli di troia; tuttavia, può essere problematico nei casi in cui il file /etc/ssh/ssh_known_hosts venga sottoposto a poca manutenzione, oppure quando le connessioni ai nuovi host vengono fatte molto spesso. Quest’opzione obbliga l’utente a aggiungere manualmente tutti i nuovi host. Se quest’opzione è impostata a ’’no’’, ssh_config aggiungerà automaticamente le chiavi dei nuovi host ai file degli host noti. Se quest’opzione è impostata a ’’ask’’, le chiavi dei nuovi host verranno aggiunte solo dopo che l’utente abbia dato conferma e ssh_config si rifiuterà di connettersi agli host la cui chiave sia cambiata. In ogni caso, le chiavi degli host conosciuti saranno verificate automaticamente. L’argomento deve essere ’’yes’’, ’’no’’ o ’’ask’’. Il valore predefinito è ’’ask’’.

UsePrivilegedPort

Indica se per le connessioni uscenti vada usata una porta privilegiata. L’argomento deve essere ’’yes’’ o ’’no’’. Il valore predefinito è ’’no’’. Se è impostato a ’’yes’’, ssh deve essere impostato come setuid del root. Si noti che quest’opzione deve essere impostata a ’’yes’’ qualora le autenticazioni RhostsAuthentication e RhostsRSAAuthentication siano necessarie con i server più datati

User

Indica l’utente con cui si fa la connessione. Quest’opzione può essere utile quando si utilizzano nomi diversi su macchine differenti; in tal caso si evita di dover dare il nome di utente sulla riga di comando.

UserKnownHostsFile

Indica un file da utilizzare come fonte delle chiavi di host, invece di $HOME/.ssh/known_hosts.

XAuthLocation

Indica la posizione del programma xauth(1). Il valore predefinito è /usr/X11R6/bin/xauth.

FILE
$HOME/.ssh/config

Questo è il file di configurazione specifico dell’utente, il cui formato è descritto nella sezione precedente. Questo file è utilizzato dal client ssh. Esso non contiene, di solito, informazioni sensibili, ma si raccomanda di imporre i permessi di lettura/scrittura per l’utente proprietario e di renderlo inaccessibile a chiunque altro.

/etc/ssh/ssh_config

Il file di configurazione generale; esso fornisce i valori predefiniti per quei valori non altrimenti specificati nel file di configurazione dell’utente, e per quegli utenti privi del file di configurazione. Questo file deve essere leggibile da tutti.

AUTORI

OpenSSH è derivato dall’originale e libero 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, gli hanno inserito funzionalità aggiuntive e hanno creato OpenSSH. Markus Friedl ha contribuito fonendo il supporto per le versioni 1.5 e 2.9 del protocollo SSH.

Traduzione di Fabio Teatini. Revisione di Valentino Squilloni.

VEDERE ANCHE

ssh(1)