Praticamente ogni sistema Unix e Linux include un comando ssh. È progettato per eseguire un programma client che fornisce una connessione sicura a un server SSH su una macchina remota. Il comando ssh viene utilizzato quando si inserisce una macchina remota, per trasferire file tra due dispositivi e per eseguire comandi su un computer remoto.
SSH è un pacchetto software che fornisce l'amministrazione del sistema e il trasferimento di file sicuri su reti non sicure. È utilizzato in quasi tutti i data center, in ogni grande impresa.
Il protocollo utilizza la crittografia per proteggere la connessione tra il client e il server. Tutte le autenticazioni, i comandi, l'output e il trasferimento di file dell'utente sono crittografati per proteggerli dagli attacchi di rete.
Il protocollo Secure Shell è stato originariamente sviluppato da Tatu Ilonen nel 1995 in risposta a un incidente con hacker nella rete universitaria finlandese. Uno sniffer di password è stato installato sul server direttamente connesso al backbone e, quando è stato scoperto, c'erano migliaia di nomi utente e password nel suo database, comprese diverse società Ylonen.
Questo incidente ha provocato lo studio della crittografia e lo sviluppo di una soluzione che Ilonen potrebbe utilizzare per accedere in modo sicuro a Internet. I suoi amici offrirono funzionalità aggiuntive, e tre mesi dopo, nel luglio 1995, Ilonen pubblicò la prima versione in open source. Era OpenSSH. In seguito ha adottato il protocollo di standardizzazione in IETF e ha sviluppato il protocollo SSH File Transfer Protocol (SFTP).
Oggi Tattoo Ilonen sta ancora lavorando su argomenti relativi a Secure Shell, in particolare per quanto riguarda la gestione delle chiavi, nonché su argomenti di cybersecurity più ampi.
Oggi il protocollo viene utilizzato per gestire più della metà dei server Web del mondo e praticamente tutti i computer Unix o Linux, sia offline che nel cloud. I professionisti della sicurezza delle informazioni e gli amministratori di sistema lo utilizzano per configurare, gestire, mantenere e utilizzare la maggior parte dei firewall, router, switch e server in milioni di reti e ambienti critici nel nostro mondo digitale. È anche integrato in molte soluzioni per il trasferimento di file e la gestione del sistema.
Il nuovo protocollo ha sostituito diversi strumenti e protocolli obsoleti, tra cui telnet, ftp, ftp / S, rlogin, rsh e rcp.
Il comando fornisce una connessione crittografata sicura tra due nodi su una rete non protetta. Questa connessione può anche essere utilizzata per accedere al terminale, trasferire file e tunnelare altre applicazioni. Le applicazioni grafiche X11 possono anche essere avviate in modo sicuro tramite SSH da un dispositivo remoto.
Ci sono altre opzioni per comandi diversi dal client. Ognuno ha una sua pagina:
keygen: crea una coppia di chiavi per l'autenticazione della chiave pubblica;
copy-id - rende la chiave pubblica consentita sul server;
agente: agente di archiviazione delle chiavi private per Single Sign-On;
aggiungi: uno strumento per aggiungere una chiave a un agente;
scp è un client di trasferimento file con un'interfaccia di comando simile a RCP;
sftp - client di trasferimento file con interfaccia FTP;
sshd è un server OpenSSH.
Normalmente Linux utilizza un client OpenSSH. Il comando ssh per accedere alla macchina remota è molto semplice. Per accedere a computer remoto Immettere il seguente comando al prompt dei comandi: sample.ssh.com.
Se si utilizza ssh per la prima volta per connettersi a questo computer remoto, verrà visualizzato un messaggio del tipo: "È impossibile autenticare l'host" sample.ssh.com ". Vuoi davvero continuare la connessione (sì / no)? "Inserisci si per continuare. Questo aggiungerà il server alla lista di host conosciuti (~ / .ssh / known_hosts). Questo è indicato dal seguente messaggio: "Avviso: aggiunto in modo permanente" sample.ssh.com "(DSA) all'elenco di host conosciuti."
Una volta stabilita la connessione al server, l'utente viene autenticato. Di regola, viene richiesta una password. Per alcuni server, potrebbe essere necessario inserire una password monouso generata da un token hardware speciale.
Quando l'autenticazione è accettata, si inserirà la riga di comando per la macchina remota.
È inoltre possibile utilizzare un nome utente diverso su una macchina remota immettendo il comando: alternative- [email protected].
Quanto sopra può anche essere espresso con la sintassi: ssh -l nome utente alternativo sample.com.
Il comando ssh è anche usato per eseguire comandi su un computer remoto senza entrare nella shell. La sintassi per questo è ssh hostname. Ad esempio, per eseguire un comando SSH: ls / tmp / doc su host sample.ssh.com, digitare il seguente comando al prompt dei comandi: sample.com ls / tmp / doc. Dopo l'autenticazione sul server remoto, verrà visualizzato il contenuto della directory remota e si tornerà al prompt della shell locale.
Per impostare l'autenticazione della chiave pubblica senza password, è possibile creare una chiave e configurare il file authorized_keys.
I parametri della riga di comando possono essere utilizzati per configurare il port forwarding. Il riposizionamento locale significa che la porta locale (sul computer client) viene sottoposta a tunnel verso l'indirizzo IP e la porta dal server. L'inoltro remoto indica che la porta remota (sul server) viene reindirizzata all'indirizzo e alla porta IP specificati dal computer client.
OpenSSH supporta anche l'inoltro di socket di dominio Unix e pacchetti IP da un dispositivo tunnel per creare una VPN (rete privata virtuale).
Alcune delle più importanti opzioni della riga di comando per un comando SSH remoto includono:
utilizzare solo la versione 1 o 2 del protocollo;
utilizzare solo indirizzi IPv4 o IPv6;
abilitare l'inoltro della connessione con l'agente di autenticazione;
utilizzare la compressione dei dati;
scegli una specifica per crittografare la sessione.
Inoltre, utilizzare il port forwarding dinamico a livello di applicazione.