Il client SSH è un'utilità necessaria quandoutilizzando una connessione SSH tra due macchine. È progettato per accedere al sistema operativo di un computer remoto ed eseguire comandi in esso. Il client viene installato sulla macchina locale dell'utente. Deve essere autenticato sul server e solo dopo che il servizio inizia. Il client può essere implementato per funzionare in un terminale o avere un'interfaccia di configurazione grafica.
Cos'è SSH?
SSH (Secure Shell) si traduce letteralmente come"Guscio sicuro". In uso, SSH è un protocollo di rete che gestisce in modo sicuro il sistema operativo di un host remoto su una rete. Fornisce connessione sicura, autenticazione e trasferimento dati da un host a un altro crittografando il traffico che lo attraversa.
Ti consente di creare tunnel crittografati pertrasferire altri protocolli di rete in modo sicuro su una rete non protetta come Internet. Viene spesso utilizzato per inoltrare le porte di un computer alle porte di un altro.
SSH è stato avviato da Tatu Ilenen daFinlandia nel 1995, che lo ha utilizzato come protocollo più riservato. Questa versione è stata chiamata SSH-1. Al momento, non è praticamente utilizzato da nessuna parte.
Nel 1996, un miglioramentoVersione SSH-2. Non è compatibile con SSH-1, è più sicuro e dispone di un elenco esteso di algoritmi di crittografia. SSH è ora la versione di SSH-2. Dal 2006, il protocollo è stato riconosciuto come standard Internet da IETF.
Ci sono due principali implementazioni SSH. Uno di questi è proprietario, sviluppato da SSH Communications Security. Il secondo è OpenSSH, creato sotto la guida di Theo de Raadt come alternativa open source gratuita al primo. È il più comune ed è incluso nella fornitura della maggior parte dei sistemi Unix-like.
Cosa sono il client SSH e il server SSH
La connessione SSH viene implementata utilizzando due componenti principali: client e server.
In parole semplici, l'utente attraverso il cliente,installato sul computer locale ottiene l'accesso alla macchina remota (server). Va notato che il client può essere implementato con una shell grafica (come applicazione desktop) e per lavorare nel terminale (console).
Il server SSH ascolta le connessioni di rete dai client equando riceve una richiesta di connessione, esegue le azioni necessarie per l'autorizzazione. In caso di esito positivo, avvia il servizio installato per il client remoto.
L'accesso sicuro è organizzato utilizzandoprocedure di autenticazione che utilizzano la crittografia a chiave pubblica asimmetrica alla prima connessione. Successivamente, viene applicata la crittografia simmetrica.
Lo standard SSH include tre protocolli:
- Protocollo di livello di trasporto: garantisce l'autenticazione, la privacy e l'integrità del server. Fornisce la compressione dei dati. Funziona su TCP / IP.
- Protocollo di autenticazione: esegue l'autenticazione del client per il server. Agisce al di sopra del livello del protocollo di trasporto.
- Protocollo di connessione: rappresenta un canale crittografato come un canale multiplex di diversi canali logici utilizzati per servizi diversi. Funziona su un canale di autenticazione.
I miglioramenti della sicurezza sono garantiti dall'autenticazione del client per il server a cui accede il client ssh e dall'autenticazione del server dal client. Entrambe le parti sono autenticate.
Il client invia una richiesta la prima volta che viene stabilita una connessione di trasporto sicura. La seconda richiesta viene inviata dopo che l'autenticazione del client SSH è stata completata.
Implementazione di OpenSSH
OpenSSH è un'implementazione open source del comando OpenBSD. È la versione più utilizzata grazie alla sua distribuzione gratuita.
Il pacchetto OpenSSH include una serie di tali strumenti:
- SSHD è il lato server.
- SSH è il lato client.
- SCP è un'utilità per la copia sicura dei file.
- SSH-keygen: genera chiavi pubbliche (RSA, DSA e altre) per computer e utenti.
- SSH-keyscan: raccoglie le chiavi pubbliche sulla rete.
- Agente SSH: memorizza le chiavi RSA private per la successiva autorizzazione con chiavi pubbliche.
- SSH-add: aggiunge nuove chiavi private all'agente SSH.
- Server SFTP: server SFTP.
- SFTP è un'utilità per copiare in modo sicuro i file tramite FTP.
OpenSSH è incluso nella confezione per la maggior parte dei sistemi Unix. I più comuni sono Linux, Open (Free, Net) BSD, Solaris, HP-UX, Irix, MacOS X e altri.
È in corso uno sviluppo attivo nell'implementazione di OpenSSH per Windows, disponibile per il download all'indirizzo posto. Ti permette di creare un server SSH nei sistemi della famiglia Windows, ha un client SSH per la connessione. OpenSSH per Windows è incluso con CygWin.
I più popolari tra gli utenti sonoDistribuzioni basate su kernel Linux. Di seguito, tutti gli esempi di utilizzo di SSH verranno utilizzati nella configurazione di OpenSSH. Per chiarezza di lavoro in Linux, verrà configurato un client SSH per Ubuntu, Windows e Mac OS X.
Installazione e configurazione di openssh-server
Ci sono molte opzioni di configurazioneOpenSSH -server. La configurazione del client deve essere eseguita in base alla configurazione del server. Questa sezione fornisce un esempio di server SSH installato su Ubuntu Server Edition. Le seguenti descrizioni della configurazione del client utilizzeranno la configurazione di questo server.
1. Esistono due modi per installare OpenSSH -server:
1.1. Scegli di installare il pacchetto OpenSSH -server immediatamente durante la distribuzione di Ubuntu Server /
1.2. Scarica e installa dal repository eseguendo il comando:
2. È possibile visualizzare i valori di configurazione del server SSHD predefinito nel file / etc / ssh / sshd_config con il comando:
3. Prima di modificare le impostazioni predefinite, assicurarsi di eseguire il backup del file e proteggerlo dalla scrittura. Questo viene fatto nel caso in cui sia necessario ripristinare l'impostazione predefinita in caso di errore.
4. Le impostazioni predefinite sono la porta TCP 22. Per sicurezza, si consiglia di sostituirla con un valore non standard, ad esempio 5754. È possibile modificare la direttiva Port con il comando:
5. Salvate il file / etc / ssh / sshd_config e riavvia SSHD:
Il server è installato e configurato.Ora è in ascolto sulla porta 5754. Per impostazione predefinita, qualsiasi utente del sistema con diritti di accesso può accedervi. L'autenticazione viene eseguita utilizzando una password o chiavi DSA, RSA, ed25519, ecc.
Client OpenSSH multipiattaforma per il terminale. Client SSH per Linux
In precedenza si diceva che fosse il più comunemente usatol'implementazione del protocollo SSH è OpenSSH, che viene fornito con la maggior parte delle build di distribuzioni Linux per impostazione predefinita. In alcuni casi, OpenSSH può essere scaricato dai repository per una data distribuzione.
Come parte dei pacchetti, il client OpenSSH è implementato insotto forma di un programma SSH, che viene lanciato dal comando con lo stesso nome. Il client viene configurato e gestito tramite terminale, non dispone di interfaccia grafica. È considerata la versione più semplice e conveniente.
Installazione e configurazione del client OpenSSH su Ubuntu
La macchina remota ha un server OpenSSH installato e configurato. La sfida è accedervi dalla macchina locale su cui è installato Ubuntu.
1. In Ubuntu, il kit di distribuzione del client OpenSSH non viene aggiunto per impostazione predefinita, quindi è necessario installarlo con il comando:
2. Dopo aver installato il programma, viene richiamato dal comando SSH dal terminale senza Root.
3. Se viene utilizzata l'autenticazione tramite password:
1) il collegamento si effettua con il comando:
- nome utente: il nome dell'account sulla macchina remota,
- host è l'indirizzo IP del server remoto (o dominio se il dominio è stato delegato al server);
2) dopo aver inserito il comando, premere Invio -ti verrà chiesto di inserire una password; è necessario inserire la password per l'account della macchina remota (fare attenzione, in quanto per la sicurezza, la password non viene visualizzata in alcun modo);
3) dopo aver inserito la password corretta, compare la finestra del terminale del server remoto con un saluto; ora puoi eseguire i comandi necessari.
4. Se è richiesta l'autorizzazione tramite chiavi DSA:
1) se necessario, puoi generare chiavi SSH pubbliche e private dal client OpenSSH:
2) per impostazione predefinita, la chiave pubblica viene salvata nel file /home/user/.ssh/id_dsa.pub e la chiave privata viene salvata in /home/user/.ssh/id_dsa;
3) la chiave pubblica generata deve essere copiata sulla macchina remota e aggiunta all'autorizzazione /home/user/.ssh/authorized_keys con il comando:
Ora l'utente può autenticarsi al server SSH senza inserire una password.
Installazione e configurazione di OpenSSH per Cygwin Terminal su Windows
Cygwin viene installato eseguendo il file Cygwin.exe, che viene scaricato dal sito Web ufficiale.
Cygwin è una build di molti pacchetti diversi. Per lavorare con un terminale remoto, è richiesto solo OpenSSH. Puoi trovarlo cercando in Cygwin stesso.
Dopo aver installato il pacchetto, è necessario avviare Cygwin Terminal e immettere il comando:
Quindi premere Invio. Ti verrà chiesto di inserire la tua password. Dopo aver superato l'autenticazione, il terminale del server remoto appare con un saluto da parte dell'utente.
La sintassi è esattamente la stessa del client OpenSSH implementato per Linux.
Client SSH multipiattaforma con PuTTY GUI
Putty è un client SSH grafico per l'amministrazione remota che include il supporto per il protocollo SSH. Il programma è open source e completamente gratuito.
Inizialmente, è stato rilasciato solo per OS Windows, ma in seguito il client è stato portato su Linux, è incluso nei repository di quasi tutte le distribuzioni popolari.
Sviluppato attivamente per funzionare su Mac OS X.
La finestra di configurazione di PuTTY sembra la stessa in tuttisistemi operativi. L'unica differenza è nei metodi di installazione. Pertanto, verranno presentati prima i metodi di installazione per i tre sistemi operativi, quindi le opzioni di configurazione di PuTTY.
Installazione di PuTTY Linux Ubuntu
1. Puoi installare PuTTY con il comando:
2. Il lancio viene eseguito dal comando putty da terminale o cliccando con il mouse dal menu:
3. Si apre la finestra delle impostazioni del client, dove è necessario registrare i parametri di connessione.
Installazione di PuTTY per Windows
Per l'installazione, è necessario scaricare il file putty.exe e salvarlo in una posizione comoda, ad esempio, sul desktop. Il programma viene avviato con due clic del pulsante sinistro del mouse.
PuTTY è un client SSH per Mac. Installazione ed esecuzione della versione GUI
Al momento della stesura di questo articolo, PuTTY non era adeguatamente portato per funzionare su Mac OS X. Sono sorti problemi durante la compilazione della parte responsabile dell'interfaccia grafica.
Ci sono alcuni lavori preliminari da fare per l'installazione.
1. Installa Xcode.
Un pacchetto di utilità e programmi di Apple per lo sviluppo e la creazione di applicazioni per Mac OS X.
Da Mac OS X 10.7 Lion, è necessario installare gli "Strumenti della riga di comando per Xcode" dal sito per sviluppatori Apple.
Dopo l'installazione, è necessario accettare il contratto di licenza:
2. Installa Xquartz.
Questa è un'implementazione del server X.Org X Window System (X11) per Mac OS X. Richiesto per la versione GUI di PuTTY scritta in GTK +. Puoi installarlo dal sito ufficiale. Dopo l'installazione, sarà necessario un nuovo accesso.
3. Installa Homebrew.
L'installazione viene eseguita con il comando:
Successivamente, è necessario verificare la correttezza dell'installazione con il comando:
4. L'installazione di Putty viene eseguita con il comando:
Il processo può richiedere più di mezz'ora poiché verranno installate molte dipendenze come Glib / GTK + / Pango / Cairo.
5. Creazione del file di avvio Putty.app.
Automator.app deve essere in esecuzione.Seleziona "programma" nel tipo di documento, seleziona "esegui script di shell" nelle azioni, inserisci il percorso del file eseguibile "/ utente / locale / bin / putty" nel campo di input, salva come "putty.app", specificando il formato di file "programma" nella directory "programmi". Se lo si desidera, è possibile sostituire l'icona standard.
Configurazione del client SSH PuTTY
Il processo per la configurazione del client grafico SSH PuTTY ha lo stesso aspetto su tutti i sistemi operativi. L'aspetto è leggermente diverso a seconda del design dell'ambiente di lavoro.
Per connetterti a una macchina remota tramite SSH, devi avviare PuTTY. Nella finestra visualizzata del programma, è necessario impostare i parametri:
Tipo di connessione: il tipo di connessione stabilito da SSH.
Nome host (o indirizzo IP) - nome host o indirizzo IP - qui viene indicato l'indirizzo IP del server remoto, nome di dominio o indirizzo Internet. Nell'esempio mostrato, l'indirizzo IP è 192.168.128.3
Porta - porta in ascolto - sul server, che è stato dato come esempio, è configurata la porta 5754. Lo specifichiamo.
Se lo desideri, puoi salvare le impostazioni per questa sessione.
Quando si fa clic sul pulsante "Apri", verrà visualizzata una finestra di terminale, in cui sarà necessario immettere il nome dell'account della macchina remota e la password.
Se è necessario autenticare il client con una coppia di chiavi, sarà necessaria l'utilità puttygen.exe, che viene eseguita in Windows. PuTTY-Gen genera la sua coppia di chiavi pubblica e privata.
La chiave pubblica deve essere aggiunta al server, viene generata nello standard SSH. Puoi aggiungere una chiave allo stesso modo, tramite OpenSSH nel terminale o utilizzando PuTTY, dopo aver eseguito la prima autorizzazione di login-password.
La chiave privata viene generata nel formato.ppk e aggiunto al client. A sinistra nell'albero, è necessario trovare SSH, espandere l'elenco, trovare Auth e in questo parametro, nel campo "File chiave privata per autenticazione", selezionare la chiave.
Dopo queste manipolazioni, l'utente può autenticarsi sul server senza immettere una password.
Al momento PuTTY è considerato un client SSH universale con una GUI. Gli sviluppatori di terze parti Gao-Feng hanno creato un client SSH per Android come versione mobile di PuTTY.
Miglior client SSH
Non c'è ancora consenso su quale client SSH utilizzare. Gli amministratori di sistema selezionano le utilità in base alle proprie esigenze.
Generalmente, gli utenti dei sistemi * Unix tendono a farloper utilizzare SSH standard dal pacchetto OpenSSH. Ha una chiara sintassi universale ed è accessibile direttamente dal terminale. Per lavorare con strumenti aggiuntivi come Secure File Copy (SCP), non è necessario installare programmi aggiuntivi. Tutto ciò di cui hai bisogno è incluso in OpenSSH.
I fan della GUI chedi solito gira su sistemi operativi Windows, usa PuTTY. È considerato il miglior client SSH per Windows. Ha tutto il set necessario di strumenti per il tunneling, la copia di file e così via, anche se questo richiede il download di moduli aggiuntivi.