SSH: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(ancora esteso e integrato)
(Fine definizione SSH)
Riga 1: Riga 1:
{{stub}}
== Descrizione ==
==Introduzione==
Ho deciso di fare questa guida poich� ho avuto molta difficolt� a creare una connessione remota sicura fra una macchina Windows ed una Linux in una LAN (o in una WAN) in quanto la maggior parte delle guide, degli How-To e delle FAQ che ho trovato in Internet esamina tale connessione fra due macchine Linux.


La connessione remota sicura, che esaminero`, e` una connessione che usa il protocollo [http://it.wikipedia.org/wiki/Ssh SSH (Secure SHell)] e, perci�, � detta '''connessione SSH''' la quale si basa sulla [http://it.wikipedia.org/wiki/Crittografia_asimmetrica criptografia asimetrica] detta anche '''criptografia a coppia di chiavi''' o, piu` semplicemente, '''a chiave pubblica/privata''' (o, semplicemente, '''a chiave pubblica''') che consiste nella generazione di una coppia di chiavi (chiamate [http://it.wikipedia.org/wiki/Chiave_privata chiave privata] e [http://it.wikipedia.org/wiki/Chiave_pubblica chiave pubblica]). In pratica, la '''chiave pubblica''' codifica la communicazione mentre la '''chiave privata''' decodifica tale comunicazione e vengono generate usando degli algoritmi asimetrici che sono [http://it.wikipedia.org/wiki/RSA RSA] e [http://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA] e le connessioni che usano tali coppie di chiavi prodotte da questi algoritmi asimetrici sono dette '''connessioni SSH'''. Tali algoritmi, per�, servono soltanto per instaurare una connessione criptata fra il client SSH e il server SSH in quanto, per il trasferimento vero e proprio dei dati, si usano degli algoritmi simmetrici, come AES o 3DES, che sono molto pi� efficenti per questo scopo ovvero per cifrare la comunicazione. Quindi:
'''SSH''' ('''S'''ecure '''SH'''ell, shell sicura) è un ''protocollo'' che permette di stabilire una consessione sicura tra due computer. SSH garantisce la segretezza e l'integrità dei dati scambiati tra due computer cifrando l'intera comunicazione, compresa la fase di autenticazione. SSH è usato usalmente per permettere il login su macchine remote ed eseguire comandi, ma supporta anche il ''tunneling'' che permette (tra le altre cose) di eseguire in locale applicazioni grafiche che risiedono sul computer remoto.


Una '''connessione SSH''' � una connessione cifrata che utilizza gli algoritmi asimetrici RSA o DSA soltanto per verificare se una chiave pubblica, memorizzata sul server, derivi da una chiave privata salvata sul client (in modo da garantire la reciproca autenticita` del server e del client) in modo da essere utilizzata, per l'intera sessione, per la cifratura simmetrica con algoritmi come AES o 3DES.
== Implementazioni ==


==Scelta del software==
Gli strumenti più diffusi per utilizzare il protocollo ssh sono la [http://www.openssh.com/ suite openssh] che è disponibile per OpenBSD, Linux, vari unices, Mac OS X, e MS Windows tramite Cygwin.
Nella suite sono inclusi diversi client, tra cui il più famoso è <code>ssh</code> che permette di aprire appunto una shell remota connettendosi al server. Altri client sono <code>scp</code> che emula il comportamento di <code>cp</code> e <code>sftp</code> che ha una interfaccia molto simile a <code>ftp</code> (simula un server ftp).


Ora, dopo aver fatto questa introduzione per chiarire i termini che user� in seguito, spiegher�, in pratica, come si crea una connessione SSH da Windows a Linux. Per far ci�, occorre scegliere un server-software SSH sulla macchina Linux (che funge dal Server) ed un client-software SSH su una macchina Windows (che funge da Client). Ora, per scegliere un server-software SSH per Linux, non esiste alcun problema in quanto la communit� Open Source ha creato un ottimo prodotto che, ormai, tutte le distribuzione lo installano come default. Questo prodotto � il software [http://www.openssh.com/ OpenSSH Server]. Ora, siccome Windows (in tutte le sue edizione per il Desktop) non ha nessun client-software SSH, occorre cercarne uno. Il pi� semplice client SSH con licenza certificata Open Source � [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] ma, chi volesse usare soprattutto la Shell di Linux ed avere qualche comodit� in pi� sullo stile di Windows, dovr� valutare programmi commerciali come [http://www.vandyke.com/products/securecrt/ SecureCRT] o [http://www.ssh.com/products/tectia/client/ SSH Tectia Client] che, per fortuna, si possono prelevare le versioni di valutazione completamente funzionanti prima dell'acquisto.
Il client <code>ssh</code> ha una interfaccia a linea di comando simile a quella di <tt>telnet</tt> e <tt>rlogin</tt>, ma, a differenza di questi ultimi, l'intera comunicazione (sia l'autenticazione che la sessione di lavoro) avviene in maniera cifrata. Per questo motivo, SSH è diventato uno standard di fatto per l'amministrazione remota di sistemi *nix e di molti dispositivi di rete, rendendo obsoleto il protocollo telnet, giudicato troppo pericoloso per la sua mancanza di protezione contro le intercettazioni.


{{Box | Nota |I client SSH permettono soltanto di accedere alla Shell di Linux per poter eseguire comandi su un terminale a caratteri di questo sistema operativo. Per poter accedere anche al suo server grafico [http://it.wikipedia.org/wiki/X_Window_System X Window System] o '''X11''' o soltanto '''X''' (e, quindi, per poter controllare i vari ambienti grafici ed i programmi di X), occorre anche un [http://it.wikipedia.org/wiki/VNC client/server VNC]. Ora, niente paura in quanto, grazie alla funzionalit� [http://en.wikipedia.org/wiki/Tunneling_protocol Tunneling] di questi tre client SSH, � possibile controlare anche X sempre in modo sicuro.}}
Altro client interessante, venuto recentemente alla ribalta è '''<tt>[[sshfs]]</tt>''' che permette di montare directory remote ed usarle in tutto e per tutto come directory locali (grazie a [http://fuse.sourceforge.net/ FUSE]): tutti i programmi possono accedere alla cartella remota in maniera trasparente, ignorando del tutto che essa si trovi su un altro computer!


==Configurazione dell'OpenSSH Server==
== Algoritmi ==


L'algoritmo di cifratura del canale di comunicazione è di tipo ibrido: viene usato inizialmente un [http://it.wikipedia.org/wiki/Crittografia_asimmetrica algoritmo asimetrico a chiave pubblica] (tipicamente RSA o DSA) per scambiarsi una chiave di sessione che a sua volta verrà usata per cifrare con un [http://it.wikipedia.org/wiki/Crittografia_simmetrica algoritmo simmetrico] tutta la successiva comunicazione. Gli algoritmi simmetrici usati usualmente sono AES o 3DES.




''Voci correlate sul wiki:''
* [[Ssh e autenticazione tramite chiavi]]
* [[Sshfs|Sshfs: montare directory remote tramite ssh]]
* [[Come effettuare una connessione remota SSH da Windows a Linux]]




----
''Approfondimenti:''
* [http://it.wikipedia.org/wiki/Ssh Ssh] su Wikipedia (it)
* [http://en.wikipedia.org/wiki/Secure_Shell Secure Shell] su Wikipedia (en)
* [http://en.wikipedia.org/wiki/Public-key_cryptography Public-key cryptography] su Wikipedia (en): spiega, molto meglio del corrispondente articolo italiano, in cosa consiste la crittografia a chiave pubblica.


: [[Utente:Balubeto|Balubeto]] 04:46, 29 Mag 2006 (EDT)
[[Categoria:Glossario]]

Versione delle 15:49, 3 giu 2006

Descrizione

SSH (Secure SHell, shell sicura) è un protocollo che permette di stabilire una consessione sicura tra due computer. SSH garantisce la segretezza e l'integrità dei dati scambiati tra due computer cifrando l'intera comunicazione, compresa la fase di autenticazione. SSH è usato usalmente per permettere il login su macchine remote ed eseguire comandi, ma supporta anche il tunneling che permette (tra le altre cose) di eseguire in locale applicazioni grafiche che risiedono sul computer remoto.

Implementazioni

Gli strumenti più diffusi per utilizzare il protocollo ssh sono la suite openssh che è disponibile per OpenBSD, Linux, vari unices, Mac OS X, e MS Windows tramite Cygwin. Nella suite sono inclusi diversi client, tra cui il più famoso è ssh che permette di aprire appunto una shell remota connettendosi al server. Altri client sono scp che emula il comportamento di cp e sftp che ha una interfaccia molto simile a ftp (simula un server ftp).

Il client ssh ha una interfaccia a linea di comando simile a quella di telnet e rlogin, ma, a differenza di questi ultimi, l'intera comunicazione (sia l'autenticazione che la sessione di lavoro) avviene in maniera cifrata. Per questo motivo, SSH è diventato uno standard di fatto per l'amministrazione remota di sistemi *nix e di molti dispositivi di rete, rendendo obsoleto il protocollo telnet, giudicato troppo pericoloso per la sua mancanza di protezione contro le intercettazioni.

Altro client interessante, venuto recentemente alla ribalta è sshfs che permette di montare directory remote ed usarle in tutto e per tutto come directory locali (grazie a FUSE): tutti i programmi possono accedere alla cartella remota in maniera trasparente, ignorando del tutto che essa si trovi su un altro computer!

Algoritmi

L'algoritmo di cifratura del canale di comunicazione è di tipo ibrido: viene usato inizialmente un algoritmo asimetrico a chiave pubblica (tipicamente RSA o DSA) per scambiarsi una chiave di sessione che a sua volta verrà usata per cifrare con un algoritmo simmetrico tutta la successiva comunicazione. Gli algoritmi simmetrici usati usualmente sono AES o 3DES.


Voci correlate sul wiki:


Approfondimenti:

  • Ssh su Wikipedia (it)
  • Secure Shell su Wikipedia (en)
  • Public-key cryptography su Wikipedia (en): spiega, molto meglio del corrispondente articolo italiano, in cosa consiste la crittografia a chiave pubblica.