@ La risposta di Graham-hill è corretta in generale, ma breve e pedanticamente scorretta, quindi mi dilungherò su di essa.
SSH è a livello di applicazione - puoi considerarlo come SSH / TCP / IP o SSH-over-TCP-over-IP. TCP è il livello di trasporto in questo mix, IP è il livello Internet. Altri protocolli "Applicazione" includono SMTP, Telnet, FTP, HTTP / HTTPS ...
IPSec viene implementato utilizzando due Trasporti separati - ESP ( Encapsulating Security Payload per la crittografia) e AH ( Intestazione di autenticazione per l'autenticazione e l'integrità). Quindi, diciamo che una connessione Telnet è stata fatta su IPSec. In genere puoi immaginarlo come Telnet / TCP / ESP / AH / IP.
(Solo per rendere le cose interessanti, IPSec ha due modalità: Transport (descritta sopra) e Tunnel.In modalità tunnel, il livello IP è incapsulato in IPSec e quindi trasmesso su (di solito) un altro livello IP. con Telnet / TCP / IP / ESP / AH / IP!)
Quindi - chiedi "spiega la differenza tra i due" -
SSH è un'applicazione e IPSec è un trasporto. Quindi SSH trasporta "un" tipo di traffico e IPSec può trasportare "qualsiasi" tipo di traffico TCP o UDP. * Ciò ha implicazioni descritte di seguito:
Chiedi "come apparirebbero in modo diverso all'utente" -
Poiché IPSec è un livello di trasporto, dovrebbe essere invisibile all'utente, proprio come il livello TCP / IP è invisibile all'utente di un browser web. Infatti, se si utilizza IPSec, non è visibile al writer del browser Web e del server Web - non devono preoccuparsi di configurare o non configurare IPSec; questo è il lavoro dell'amministratore di sistema. Confrontalo con HTTPS, dove il server ha bisogno di una chiave privata e certificato abilitato correttamente, librerie SSL compilate e codice scritto; il browser client ha librerie SSL compilate e scritte in codice e ha la chiave pubblica CA appropriata o urla a gran voce (intromettendosi sull'applicazione) se non è presente.
Quando IPSec è impostato, poiché agisce sul livello di trasporto, può supportare più applicazioni senza problemi. Dopo aver configurato IPSec tra due sistemi, si tratta di una differenza minima tra il funzionamento per 1 applicazione o 50 applicazioni. Allo stesso modo, IPSec rende un semplice wrapper per i protocolli che utilizzano più connessioni come FTP (controllo e dati possono essere connessioni separate) o H.323 (non solo connessioni multiple, ma più trasporti (TCP e UDP)!).
Dal punto di vista dell'amministratore, tuttavia, IPSec è più pesante di SSH o SSL. Richiede più setup in quanto funziona a livello di sistema piuttosto che a livello di applicazione. Ogni relazione (da host a host, da host a net o da net-to-net) deve essere impostata individualmente. Dall'altra parte, SSH e SSL sono generalmente opportunistici - utilizzando un PKI (CA) o un modello di fiduciario, rendono ragionevolmente facile fidarsi dell'altra estremità della connessione senza molta configurazione prima di tempo. IPSec può essere opportunistico, ma generalmente non viene utilizzato in questo modo, in parte perché la configurazione di una connessione IPSec richiede spesso tentativi ed errori. L'interoperabilità tra diversi fornitori (Linux, Checkpoint, Cisco, Juniper, Etc) non è perfetta; la configurazione utilizzata per rendere Cisco < - > Checkpoint è probabile che sia diversa dalla configurazione utilizzata per rendere Cisco < - > Juniper. A differenza di SSH, il server OpenSSH non si preoccupa se stai usando Putty, OpenSSH (* nix o Cygwin) SSH o Tectia SSH.
Per quanto riguarda la velocità - non ho numeri buoni da darti e parte della risposta è "dipende" - se IPSec è coinvolto, allora l'elaborazione IPSec effettiva verrà probabilmente scaricata su un firewall o VPN Concentrator con hardware veloce dedicato, rendendolo più veloce di SSH, che è praticamente sempre criptato usando la stessa CPU general-purpose che esegue anche il sistema operativo del server e le applicazioni. Quindi non sono proprio mele-mele; Scommetto che potresti trovare casi d'uso in cui una delle due opzioni è più veloce.
* Questo non è strict true. SSH supporta un'applicazione terminale, un'applicazione di copia di file / ftp e un'applicazione di tunneling TCP. Ma in realtà è solo un'applicazione molto ricca , non un trasporto - il suo tunneling non è una sostituzione di IP Transport.