Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "LorenzoZolfanelli/Prove0"
Differenze tra le versioni 9 e 14 (in 5 versioni)
Versione 9 del 03/04/2008 17.22.04
Dimensione: 12190
Commento:
Versione 14 del 14/03/2011 12.54.21
Dimensione: 12069
Autore: localhost
Commento: converted to 1.6 markup
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 8: Linea 8:
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents(1)]]||
<<BR>>
<<Indice>>
Linea 23: Linea 22:
[[Anchor(installazione)]] <<Anchor(installazione)>>
Linea 28: Linea 27:
Per avere il server '''ssh''' su Ubuntu, è sufficiente [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto ''openssh-server''. Per avere il server '''ssh''' su Ubuntu, è sufficiente [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto ''openssh-server''.
Linea 32: Linea 31:
[[Anchor(accessoremoto)]] <<Anchor(accessoremoto)>>
Linea 78: Linea 77:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Con'' '''scp''' ''non si possono copiare file tra due computer remoti. La sorgente o la destinazione devono essere file locali.'' || ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Con'' '''scp''' ''non si possono copiare file tra due computer remoti. La sorgente o la destinazione devono essere file locali.'' ||
Linea 92: Linea 91:
Se il computer remoto utilizza Ubuntu come sistema operativo, risulterà impossibile connettersi a esso come utente '''root''', perché in Ubuntu l'utente '''root''' non è abilitato. Se si desidera svolgere compiti amministrativi su un computer remoto con Ubuntu, connettersi prima come utente normale, quindi usare '''sudo''' per dare comandi con privilegi amministrativi. In alternativa, [:AmministrazioneSistema/Sudo#abilitare_login_root:abilitare l'utente root] sul computer remoto. Se il computer remoto utilizza Ubuntu come sistema operativo, risulterà impossibile connettersi a esso come utente '''root''', perché in Ubuntu l'utente '''root''' non è abilitato. Se si desidera svolgere compiti amministrativi su un computer remoto con Ubuntu, connettersi prima come utente normale, quindi usare '''sudo''' per dare comandi con privilegi amministrativi. In alternativa, [[AmministrazioneSistema/Sudo#abilitare_login_root|abilitare l'utente root]] sul computer remoto.
Linea 98: Linea 97:
Può essere utile aprire e utilizzare alcune applicazioni grafiche sul computer remoto. Invece di usare alternative pesanti e non adatte a internet come VNC è possibile utilizzare l'X Forwarding. Gli unici requisiti del computer locale sono una connessione almeno a banda larga con il computer remoto e l'installazione di base del server X11, mentre non ci sono requisiti particolari per il computer remoto. Può essere utile aprire e utilizzare alcune applicazioni grafiche sul computer remoto. Invece di usare alternative simili a VNC, le quali non supportano la cifratura, è possibile utilizzare l'X11 Forwarding. Gli unici requisiti del computer locale sono una connessione abbastanza veloce con il computer remoto (una ADSL standard dovrebbe andare bene) e l'installazione di base del server X11, mentre non ci sono requisiti particolari per il computer remoto.
Linea 110: Linea 109:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se l'esecuzione di questo comando dovesse fallire sarà necessario installare il pacchetto xauth.'' || ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Se l'esecuzione di questo comando dovesse fallire sarà necessario installare il pacchetto xauth.'' ||
Linea 115: Linea 114:
ssh -x utenteremoto@computerremoto
}}}

.
ssh -X utenteremoto@computerremoto
}}}
Linea 138: Linea 135:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Grandi/info.png,,center)]] ||<style="padding:0.5em; border:none;">Si può anche scegliere di non creare la passphrase e quindi di non cifrare la chiave privata, ma sarebbe una pessima scelta, in quanto chiunque venisse in possesso della nostra chiave privata in chiaro avrebbe facilmente accesso a tutti i servizi. || ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Si può anche scegliere di non creare la passphrase e quindi di non cifrare la chiave privata, ma sarebbe una pessima scelta, in quanto chiunque venisse in possesso della nostra chiave privata in chiaro avrebbe facilmente accesso a tutti i servizi. ||
Linea 152: Linea 149:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se l'autenticazione con password utente remoto è disabilitata, si deve copiare e incollare la chiave con un altro mezzo.'' || ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Se l'autenticazione con password utente remoto è disabilitata, si deve copiare e incollare la chiave con un altro mezzo.'' ||
Linea 161: Linea 158:
Se si sceglie di usare solo l'autenticazione tramite chiave pubblica, per aumentare ulteriormente la sicurezza si può disabilitare l'autenticazione tramite password utente. Aprire il file `/etc/ssh/sshd_config` con un [:Ufficio/EditorDiTesto:Editor di testo] con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] e aggiungere la seguente riga: Se si sceglie di usare solo l'autenticazione tramite chiave pubblica, per aumentare ulteriormente la sicurezza si può disabilitare l'autenticazione tramite password utente. Aprire il file `/etc/ssh/sshd_config` con un [[Ufficio/EditorDiTesto|Editor di testo]] con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e aggiungere la seguente riga:
Linea 179: Linea 176:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se ci si allontana dal proprio computer, altre persone potrebbero usarlo e sfruttare la chiave privata senza conoscere la passphrase. Se si teme una simile eventualità, si consiglia di bloccare lo schermo con la combinazione di tasti'' '''Ctrl+Alt+L''' ''prima di allontanarsi.'' || ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Se ci si allontana dal proprio computer, altre persone potrebbero usarlo e sfruttare la chiave privata senza conoscere la passphrase. Se si teme una simile eventualità, si consiglia di bloccare lo schermo con la combinazione di tasti'' '''Ctrl+Alt+L''' ''prima di allontanarsi.'' ||
Linea 183: Linea 180:
Sul computer remoto si può scegliere di far eseguire solo alcuni comandi a chi vi si connette tramite autenticazione a chiave pubblica. Se per esempio si gestisce un repository [:Cvs:CVS], si può aggiungere nel file `authorized_keys` la seguente riga: Sul computer remoto si può scegliere di far eseguire solo alcuni comandi a chi vi si connette tramite autenticazione a chiave pubblica. Se per esempio si gestisce un repository [[Cvs|CVS]], si può aggiungere nel file `authorized_keys` la seguente riga:
Linea 194: Linea 191:
Microsoft Windows dispone di [http://www.openssh.com/windows.html diverse alternative] più o meno valide per usare il protocollo SSH e fare anche da server. Il più diffuso client SSH per Windows è [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty]. Microsoft Windows dispone di [[http://www.openssh.com/windows.html|diverse alternative]] più o meno valide per usare il protocollo SSH e fare anche da server. Il più diffuso client SSH per Windows è [[http://www.chiark.greenend.org.uk/~sgtatham/putty/|Putty]].
Linea 198: Linea 195:
Il client SSH '''Putty''' è disponibile anche in una versione per cellulari Symbian a [http://s2putty.sourceforge.net/ questo indirizzo]. Il client SSH '''Putty''' è disponibile anche in una versione per cellulari Symbian a [[http://s2putty.sourceforge.net/|questo indirizzo]].
Linea 202: Linea 199:
 * [http://www.openssh.org/ Sito ufficiale del progetto]
 * [wiki:Ubuntu/SSHHowto Pagina sul wiki internazionale]



---
CategotyHomepage
 * [[http://www.openssh.org/|Sito ufficiale del progetto]]
 * [[Ubuntu:SSHHowto|Pagina sul wiki internazionale]]



Introduzione

OpenSSH è un insieme di programmi che permettono, in tutta sicurezza, di svolgere diverse operazioni:

  • controllare un computer remoto tramite terminale;
  • copiare file da un computer remoto al computer locale e viceversa;
  • cifrare qualunque traffico di dati tra computer locale e computer remoto tramite il tunneling.

OpenSSH sostituisce i vecchi programmi telnet, rlogin e ftp, considerati poco sicuri poichè trasmettono in chiaro i dati relativi all'autenticazione (nome utente, password etc).

Installazione

È necessario disporre di un server ssh su ogni computer al quale ci si vuole connettere (chiamato in seguito «computer remoto»), e di un client ssh su ogni computer dal quale si vuole avviare la connessione (chiamato in seguito «computer locale»). Se ad esempio si dispone di due computer e si vuole che ognuno dei due possa connettersi all'altro, su entrambi dovranno essere installati sia il server che il client.

Per avere il server ssh su Ubuntu, è sufficiente installare il pacchetto openssh-server.

Il client ssh (contenuto nel pacchetto openssh-client) è installato in Ubuntu in modo predefinito.

Usare nautilus con computer remoti

Nautilus consente di visualizzare, modificare, eliminare o copiare file presenti su un computer remoto (con server ssh installato) in tutta sicurezza, grazie a OpenSSH. Il metodo più semplice per ottenere ciò è aprire nautilus e inserire l'indirizzo desiderato (verrà chiesta la password dell'utente remoto), come da esempio:

ssh://nomeutenteRemoto@indirizzoIP

Il metodo successivo permette di avere un'icona persistente in nautilus, evitando dunque di inserire ogni volta gli stessi «nomeutenteRemoto» e «indirizzoIP». Scegliere Risorse -> Connetti al server..., quindi inserire i seguenti dati:

Campo

Valore

Tipo di servizio:

SSH

Server:

«indirizzoIP»

Nome utente:

«nomeutenteRemoto»

Nome da usare per la connessione:

a scelta dell'utente

Utilizzo da terminale

Copia di file

Per copiare un file dal proprio computer locale a un computer remoto (e viceversa) attraverso il terminale, OpenSSH mette a disposizione il comando scp.

Nel primo caso, la sintassi del comando dovrebbe essere simile alla seguente:

scp percorsoFileLocale nomeUtenteRemoto@indirizzoIP:PercorsoDestinazioneRemota

Quello che segue è un esempio:

scp fileDaCopiare.txt mario@192.168.1.1:/home/mario/fileCopiato.txt

Il precedente comando copierà il file fileDaCopiare.txt dalla cartella corrente del computer locale alla posizione /home/mario/fileCopiato.txt (non è necessario cambiare il nome del file) del computer remoto identificato dall'indirizzo ip 192.168.1.1 , usando l'utente mario sul computer remoto.

Per copiare un file da un computer remoto al computer locale, basta seguire lo schema inverso, digitando un comando simile al seguente:

scp nomeUtenteRemoto@indirizzoIP:PercorsoFileRemoto PercorsoDestinazioneLocale

Quello che segue è un esempio:

scp mario@192.168.1.1:/home/mario/fileDaCopiare.txt .

Tale comando copierà il file remoto identificato dal percorso /home/mario/fileDaCopiare.txt nella cartella corrente (identificata dal punto .), senza rinominarlo.

Con scp non si possono copiare file tra due computer remoti. La sorgente o la destinazione devono essere file locali.

Accedere al terminale di un computer remoto

Per accedere alla linea di comando di un computer remoto, OpenSSH fornisce il comando ssh. È sufficiente digitare il comando:

ssh nomeutente@indirizzoIP

Quello che segue è un esempio:

ssh mario@192.168.23.42

Se il computer remoto utilizza Ubuntu come sistema operativo, risulterà impossibile connettersi a esso come utente root, perché in Ubuntu l'utente root non è abilitato. Se si desidera svolgere compiti amministrativi su un computer remoto con Ubuntu, connettersi prima come utente normale, quindi usare sudo per dare comandi con privilegi amministrativi. In alternativa, abilitare l'utente root sul computer remoto.

X11 Forwarding

Prerequisiti

Può essere utile aprire e utilizzare alcune applicazioni grafiche sul computer remoto. Invece di usare alternative simili a VNC, le quali non supportano la cifratura, è possibile utilizzare l'X11 Forwarding. Gli unici requisiti del computer locale sono una connessione abbastanza veloce con il computer remoto (una ADSL standard dovrebbe andare bene) e l'installazione di base del server X11, mentre non ci sono requisiti particolari per il computer remoto. Potrebbe inoltre essere necessaria l'installazione del pacchetto xauth sul computer locale.

Sintassi

Prima di tutto è necessario autorizzare il server X del computer locale ad accettare connessioni in entrata dal computer remoto, quindi aprire una finestra di terminale e digitare:

xhost +

Se l'esecuzione di questo comando dovesse fallire sarà necessario installare il pacchetto xauth.

Successivamente per collegarsi al computer remoto digitare:

ssh -X utenteremoto@computerremoto

Note per Windows

La maggior parte dei software SSH per windows non supporta nativamente il Forwarding X11. In questo caso può essere utile utilizzare CygWin, che contiene il port di numerosi software linux, tra quali ssh (sia client che server) e server X.

Aumentare la sicurezza

Autenticazione a chiave pubblica

Per impostazione predefinita, OpenSSH consente di effettuare l'accesso tramite autenticazione con nome utente e password dell'utente remoto. Tuttavia se qualcuno è venuto in possesso di nome e password dell'utente del computer remoto, vi si potrà connettere dall'esterno, compromettendo la sicurezza del computer remoto. Da tempo OpenSSH è in grado di prevenire il problema, grazie all'autenticazione con chiave pubblica.

OpenSSH può usare chiavi di accesso private e pubbliche al posto della password utente remoto. La prima cosa da fare è creare la propria coppia di chiavi, privata e pubblica, sul computer locale. Aprire una finestra di terminale e digitare:

ssh-keygen -t dsa

Verrà chiesto dove salvare la chiave privata (si consiglia di accettare la posizione predefinita ~/.ssh/id_dsa) e di scegliere una passphrase adeguata. La passphrase è una nuova password, usata per cifrare la chiave privata. Ogni qualvolta servirà la nostra chiave privata, bisognerà prima fornire la passphrase.

Si può anche scegliere di non creare la passphrase e quindi di non cifrare la chiave privata, ma sarebbe una pessima scelta, in quanto chiunque venisse in possesso della nostra chiave privata in chiaro avrebbe facilmente accesso a tutti i servizi.

Insieme alla chiave privata viene creata anche la chiave pubblica (localizzata in ~/.ssh/id_dsa.pub sul computer locale), liberamente distribuibile.

L'account utente sul computer remoto usato per l'accesso deve avere memorizzata la chiave pubblica nel relativo file di autorizzazione, cioè il file ~/.ssh/authorized_keys del computer remoto; per lo scopo, OpenSSH mette a disposizione il comando ssh-copy-id, da usare sul computer locale come nel seguente esempio:

ssh-copy-id -i percorsoLocaleChiavePubblica nomeUtenteRemoto@indirizzoIP

Quello che segue è un esempio:

ssh-copy-id -i ~/.ssh/id_dsa.pub mario@192.168.23.42

Se l'autenticazione con password utente remoto è disabilitata, si deve copiare e incollare la chiave con un altro mezzo.

Una volta aggiunta la chiave pubblica sul computer remoto sarà possibile effetuare l'accesso. Aprire una finestra di terminale e digitare il seguente comando:

ssh nomeutente@indirizzoIP

Verrà chiesta la passphrase conservata in locale e non la password dell'utente remoto (salvata in /etc/password del computer remoto).

Se si sceglie di usare solo l'autenticazione tramite chiave pubblica, per aumentare ulteriormente la sicurezza si può disabilitare l'autenticazione tramite password utente. Aprire il file /etc/ssh/sshd_config con un Editor di testo con i privilegi di amministrazione e aggiungere la seguente riga:

Password``Authentication no

Terminate le modifiche sarà necessario riavviare il server ssh.

Memorizzazione della passphrase

Se si usa l'autenticazione a chiave pubblica, OpenSSH fornisce un metodo grazie al quale la passphrase verrà chiesta solo una volta durante tutta la sessione. Questa caratteristica è utile ad esempio a chi usa spesso il comando scp, o agli amministratori di computer remoti, in quanto evita di dover reinserire la password ogni volta che si lancia un comando.

Il comando per aggiungere la propria passphrase al gestore delle identità è ssh-add. Digitare il seguente comando:

ssh-add

Verrà chiesta la passphrase, dopodiché la chiave privata sarà sempre disponibile.

Se ci si allontana dal proprio computer, altre persone potrebbero usarlo e sfruttare la chiave privata senza conoscere la passphrase. Se si teme una simile eventualità, si consiglia di bloccare lo schermo con la combinazione di tasti Ctrl+Alt+L prima di allontanarsi.

Permessi sui comandi

Sul computer remoto si può scegliere di far eseguire solo alcuni comandi a chi vi si connette tramite autenticazione a chiave pubblica. Se per esempio si gestisce un repository CVS, si può aggiungere nel file authorized_keys la seguente riga:

command="/usr/bin/cvs server" ssh-dss AAAAB3N....

In questo modo è permessa l'esecuzione esclusivamente dei comandi per il CVS.

Il protocollo SSH su altri sistemi operativi

Supporto per Windows

Microsoft Windows dispone di diverse alternative più o meno valide per usare il protocollo SSH e fare anche da server. Il più diffuso client SSH per Windows è Putty.

Supporto per cellulari Symbian

Il client SSH Putty è disponibile anche in una versione per cellulari Symbian a questo indirizzo.

Ulteriori risorse


CategoryHomepage