SSH: Difference between revisions

From Web
Jump to navigation Jump to search
m (Applicazioni - SSH moved to SSH: not easily searchable)
mNo edit summary
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.


Ad esempio è 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).
== 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 ===
== 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 ===
== Links ==
* [[Network/Tunneling attraverso Ssh]]
* [[Network/Tunneling attraverso Ssh]]



Revision as of 10:57, 12 June 2008

Note per usare ssh (Secure SHell from Wikipedia), tool molto potente e spesso sotto-utilizzato.

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:

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.

Links