Difference between revisions of "SSH"
m (Applicazioni - SSH moved to SSH: not easily searchable) |
m |
||
Line 1: | Line 1: | ||
Note per usare ssh (Secure SHell from [http://en.wikipedia.org/wiki/Ssh Wikipedia]), tool molto potente e spesso sotto-utilizzato. | Note per usare ssh (Secure SHell from [http://en.wikipedia.org/wiki/Ssh Wikipedia]), tool molto potente e spesso sotto-utilizzato. | ||
− | + | == Tunneling attraverso Ssh == | |
− | === Creare una coppia di chiavi sul client === | + | Ssh permette il ''port-forwarding''. Con questo meccanismo è possibile ''clonare'' una porta di un server su un'altra macchina, la comunicazione tra le due macchine (server e clone) avviene su connessione criptata e sicura. |
+ | |||
+ | Di seguito ci sono alcuni esempi di come effettuare la ridirezione di una porta via ssh. | ||
+ | |||
+ | ==== Ssh per Windows ==== | ||
+ | |||
+ | Per macchine windows un client (a riga di comando) e server ssh si può installare tra i pacchetti | ||
+ | cygwin | ||
+ | che si installano gratuitamente a partire dal sito [http://www.cygwin.com/ http://www.cygwin.com/] (scaricare setup.exe, scegliere un mirror e tra i pacchetti da installare scegliere bash e ssh). | ||
+ | |||
+ | Altri strumenti utili per windows sono: | ||
+ | * WinScp [http://winscp.net/ http://winscp.net/] permette di copiare files via ssh | ||
+ | * Putty [http://www.chiark.greenend.org.uk/~sgtatham/putty/ http://www.chiark.greenend.org.uk/~sgtatham/putty/] terminale ssh che permette il ''port forwarding'' | ||
+ | |||
+ | ==== Collegarsi usando Remote Desktop a una macchina nella subnet di ingegneria dell'informazione ==== | ||
+ | |||
+ | Prerequisiti: | ||
+ | * client: macchina con client rdesktop e client ssh | ||
+ | * server: macchina con server rdesktop dentro la subnet di ingegneria dell'informazione. In questo esempio è ischia.ing.unimo.it | ||
+ | * intermediario ssh: macchina dentro la subnet di ingegneria dell'informazione su cui è disponibile un server ssh (macchine Linux SunOs e anche Windows). In questo esempio è sparc20.ing.unimo.it su cui è attivo l'account ''corni'' | ||
+ | |||
+ | E' importante che server e intermediario ssh siano nella stessa subnet. | ||
+ | |||
+ | Il seguente comando eseguito sul client effettua il ''forward'' della porta rdesktop (3389) del server su una porta locale del client: | ||
+ | ssh -o ServerAliveInterval=5 -C \ | ||
+ | -L3389:ischia.ing.unimo.it:3389 \ | ||
+ | corni@sparc20.ing.unimo.it | ||
+ | |||
+ | ora e' sufficiente collegarsi con il client rdesktop a localhost: | ||
+ | rdesktop -g 1024x768 -a 24 localhost & | ||
+ | |||
+ | ==== Windows: Tunneling di VNC usando PUTTY ==== | ||
+ | Rimando alle istruzioni dal sito | ||
+ | [http://dingetje.homeip.net/dokuwiki/freesco/howtos/setup_ssh_tunnel_to_connect_with_vnc_server http://dingetje.homeip.net] | ||
+ | e ne riporto una versione locale pdf: | ||
+ | * [[Media:VNC_PuTTY_HOWTO.pdf]] | ||
+ | |||
+ | |||
+ | == Collegamento a un server con chiave pubblica e senza password == | ||
+ | É possibile configurare un client ed un server in modo che ssh non richieda la password per collegarsi al server dal client sfruttando chiavi pubbliche e private (che è un modo comodo e decisamente più sicuro dell'uso della password). | ||
+ | |||
+ | ==== Creare una coppia di chiavi sul client ==== | ||
creazione delle chiavi, esempio: | creazione delle chiavi, esempio: | ||
alx 12:47:03 ~: ssh-keygen -t rsa | alx 12:47:03 ~: ssh-keygen -t rsa | ||
Line 17: | Line 58: | ||
59:34:d1:99:67:8c:90:5f:92:df:26:94:72:c9:9e:ac corni@alx | 59:34:d1:99:67:8c:90:5f:92:df:26:94:72:c9:9e:ac corni@alx | ||
− | === usare l'identita' che si e' appena creata === | + | ==== usare l'identita' che si e' appena creata ==== |
kde, gnome e altri ambienti fanno partire automaticamente | kde, gnome e altri ambienti fanno partire automaticamente | ||
un'istanza di ssh-agent per cui e' sufficiente chiedere | un'istanza di ssh-agent per cui e' sufficiente chiedere | ||
Line 37: | Line 78: | ||
− | === Configurare un server SSH per non richiedere la password === | + | ==== Configurare un server SSH per non richiedere la password ==== |
ssh username@nomeDellaMacchina | ssh username@nomeDellaMacchina | ||
cd | cd | ||
Line 49: | Line 90: | ||
Ora, dal client ci si potrà collegare al server senza che venga chiesta alcuna password. L'autenticazione avviene sfruttando la coppia di chiavi pubblica e privata. | Ora, dal client ci si potrà collegare al server senza che venga chiesta alcuna password. L'autenticazione avviene sfruttando la coppia di chiavi pubblica e privata. | ||
− | + | == Script utili per windows e cygwin == | |
+ | ==== Semplice uso di ssh-agent ==== | ||
Il seguente script lancia l'ssh-agent e configura correttamente l'ambiente se questo non è già partito. | Il seguente script lancia l'ssh-agent e configura correttamente l'ambiente se questo non è già partito. | ||
Line 74: | Line 116: | ||
Questo script si può anche migliorare ma questo (con il tag <<EOF) è decisamente più didattico. | Questo script si può anche migliorare ma questo (con il tag <<EOF) è decisamente più didattico. | ||
− | + | == Links == | |
* [[Network/Tunneling attraverso Ssh]] | * [[Network/Tunneling attraverso Ssh]] | ||
Revision as of 12:57, 12 June 2008
Note per usare ssh (Secure SHell from Wikipedia), tool molto potente e spesso sotto-utilizzato.
Contents
Tunneling attraverso Ssh
Ssh permette il port-forwarding. Con questo meccanismo è possibile clonare una porta di un server su un'altra macchina, la comunicazione tra le due macchine (server e clone) avviene su connessione criptata e sicura.
Di seguito ci sono alcuni esempi di come effettuare la ridirezione di una porta via ssh.
Ssh per Windows
Per macchine windows un client (a riga di comando) e server ssh si può installare tra i pacchetti
cygwin
che si installano gratuitamente a partire dal sito http://www.cygwin.com/ (scaricare setup.exe, scegliere un mirror e tra i pacchetti da installare scegliere bash e ssh).
Altri strumenti utili per windows sono:
- WinScp http://winscp.net/ permette di copiare files via ssh
- Putty http://www.chiark.greenend.org.uk/~sgtatham/putty/ terminale ssh che permette il port forwarding
Collegarsi usando Remote Desktop a una macchina nella subnet di ingegneria dell'informazione
Prerequisiti:
- client: macchina con client rdesktop e client ssh
- server: macchina con server rdesktop dentro la subnet di ingegneria dell'informazione. In questo esempio è ischia.ing.unimo.it
- intermediario ssh: macchina dentro la subnet di ingegneria dell'informazione su cui è disponibile un server ssh (macchine Linux SunOs e anche Windows). In questo esempio è sparc20.ing.unimo.it su cui è attivo l'account corni
E' importante che server e intermediario ssh siano nella stessa subnet.
Il seguente comando eseguito sul client effettua il forward della porta rdesktop (3389) del server su una porta locale del client:
ssh -o ServerAliveInterval=5 -C \ -L3389:ischia.ing.unimo.it:3389 \ corni@sparc20.ing.unimo.it
ora e' sufficiente collegarsi con il client rdesktop a localhost:
rdesktop -g 1024x768 -a 24 localhost &
Windows: Tunneling di VNC usando PUTTY
Rimando alle istruzioni dal sito http://dingetje.homeip.net e ne riporto una versione locale pdf:
Collegamento a un server con chiave pubblica e senza password
É possibile configurare un client ed un server in modo che ssh non richieda la password per collegarsi al server dal client sfruttando chiavi pubbliche e private (che è un modo comodo e decisamente più sicuro dell'uso della password).
Creare una coppia di chiavi sul client
creazione delle chiavi, esempio:
alx 12:47:03 ~: ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/corni/.ssh/id_rsa):
questa e' la chiave di default, di solito va bene cosi'. inserire una password seria con cui proteggere la chiave privata.
Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/corni/.ssh/idTmp. Your public key has been saved in /home/corni/.ssh/idTmp.pub. The key fingerprint is: 59:34:d1:99:67:8c:90:5f:92:df:26:94:72:c9:9e:ac corni@alx
usare l'identita' che si e' appena creata
kde, gnome e altri ambienti fanno partire automaticamente un'istanza di ssh-agent per cui e' sufficiente chiedere ad ssh-agent di usare la data identita' con il comando:
ssh-add ~/.ssh/id_rsa
Se non funziona, occorre prima attivare ssh-agent
alx 12:50:52 ~:ssh-agent SSH_AUTH_SOCK=/tmp/ssh-KlWHV19986/agent.19986; export SSH_AUTH_SOCK; SSH_AGENT_PID=19987; export SSH_AGENT_PID; echo Agent pid 19987;
nell'output di ssh agent ci sono le isntruzioni bash da eseguire perche' i futuri comandi ssh usino l'agent appena avviato, per cui occorre eseguire i comandi
SSH_AUTH_SOCK=/tmp/ssh-KlWHV19986/agent.19986; export SSH_AUTH_SOCK; SSH_AGENT_PID=19987; export SSH_AGENT_PID; echo Agent pid 19987;
e quindi
ssh-add ~/.ssh/id_rsa
Configurare un server SSH per non richiedere la password
ssh username@nomeDellaMacchina cd mkdir .ssh chmod 700 .ssh cd .ssh cat >> authorized_keys2 incollare il contenuto della propria chiave pubblica ~/.ssh/id_rsa.pub ^D
Ora, dal client ci si potrà collegare al server senza che venga chiesta alcuna password. L'autenticazione avviene sfruttando la coppia di chiavi pubblica e privata.
Script utili per windows e cygwin
Semplice uso di ssh-agent
Il seguente script lancia l'ssh-agent e configura correttamente l'ambiente se questo non è già partito.
# # ssh agent fn=$HOME/var/ssh-agent.sh if [ `ps | grep -i -c ssh-agent` -gt 0 ] then . $fn else eval `ssh-agent` cat > $fn <<EOF # # Ssh-agent setup file # # This file was generated automatically by .bashrc on [`date`] # please do not modify it manually SSH_AUTH_SOCK=$SSH_AUTH_SOCK; export SSH_AUTH_SOCK; SSH_AGENT_PID=$SSH_AGENT_PID; export SSH_AGENT_PID; EOF ssh-add .ssh/id_rsa fi
Questo script si può anche migliorare ma questo (con il tag <<EOF) è decisamente più didattico.