SSH
Contingut |
Instal.lació i configuració
Secure Shell (SSH)-> protocol que permet canal segur entre màquina local i màquina remota. La clau d'encriptació pot canviar enmig de la sessió.
$ aptitude install ssh
ssh és un metapaquet (no porta res)(virtual or dummy), i el que fa és crear una dependència per instalar ssh client i ssh server.
ssh treballa pel port 22
script d'inicialització: /etc/init.d/ssh:
$ sudo /etc/init.d/ssh start
per confirmar que treballa pel port 22:
$cat /etc/services | grep ssh
fitxer de configuració: /etc/ssh/sshd_config
procés ssh: sshd (és el procés en el servidor, el dimoni)
en el client normalment hi ha un escriptori (X-11)(servidor d'escriptori)
Cal donar permís al nostre escriptori per tal que hi hagi clients remots. L'escriptori en ppi està protegit contra clients remots.
ssh utilitza una sèrie de protocols que té el X11, i així es pot treballar en clients remots amb el teu escriptori.
Tot això ve perque en el fitxer de configuració hi ha la línia:
# X11Forwarding no
per defecte està comentada, en el meu ordinador apareix: X11Forwarding yes
# What ports, IPs and protocols we listen for Port 22 -> es podria canviar el port aquí
anem a connectar-nos des del portàtil. resulta que en el portàtil també tinc el SSH server (és el Ubuntu Studio, ve instal.lat per defecte)
En el servidor faig
adduser ritona
(pwd: ritona)
En el portàtil, esborro el directori del ssh:
des del meu home (joan), i connectat com a joan:
$ cd .ssh $ rm *
o bé
$ rm .ssh/*
en el directori .ssh es crea el fitxer knowhost, en el qual hi ha un número que identifica el host al qual em connecto, i és una protecció anti-troià.
és per això que esborrem el fitxer, perquè és una nova instal.lació que acabem de fer.
la sintaxi per connectar-se a un usuari d'un altre host (el servidor 192.168.1.130) és:
joan$ ssh joan@192.168.1.130 #l'usuari joan en la màquina servidor joan$ # en el servidor joan$ exit joan$ ssh ritona@192.168.1.130 #l'usuari rita en el servidor, l'acabem de crear ritona$ exit joan$
i em connecto després de proporcionar el pwd. Fixem-nos que el prompt és ritona$, estic connectat al servidor.
estem connectats, i ara volem utilitzar un client de X11:
ritona$ xterm
-> can't open display, display is not set
sortim:
ritona$ exit logout Connection to 192.168.1.130 closed joan$
Per tal de poder-ho fer:
$ ssh -X ritona@192.168.1.130 ritona$ xterm
i ara el xterm ja funciona i tinc una consola, que és un client de consola de l'ordinador del servidor. Si encara no ha funcionat, el problema és que la variable d'entorn no està inicialitzada:
joan$ export DISPLAY=:0.0
Connexió des de Internet: hem de tenir configurada la taula NAT del router per redirigir el port 22 a la IP 192.168.1.130.
$ ssh ritona@wikijoan.dyndns.org
OK
SSH sense demanar password
Hem d'instal.lar una clau pública en el servidor, però la clau pública es genera en el client.
La clau pública es genera en el client, i el servidor l'autentifica (confia en ella)
joan@portatil$ ssh-keygen -t dsa Your identification has been saved in /home/joan/.ssh/id_dsa. Your public key has been saved in /home/joan/.ssh/id_dsa.pub. The key fingerprint is: eb:6d:c5:27:f0:77:31:5b:2c:c4:f5:80:89:82:11:ca joan@ubuntu
Es genera un fitxer per guardar la clau a /home/joan/.ssh/id_dsa.
Quan demana passphrase deixar-ho en blanc (Enter)
copiar ~/.ssh/id_dsa.pub al servidor:
joan@portatil$ scp ~/.ssh/id_dsa.pub joan@192.168.1.130:/tmp
OK
ara en el servidor (192.168.1.130) (a on volem accedir sense password):
joan@server$ cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys joan@server$ chmod 0600 $HOME/.ssh/authorized_keys joan@server$ rm -f /tmp/id_dsa.pub
Fem la prova en el client:
joan@portatil$ ssh joan@192.168.1.130
i em deixa entrar sense password.
faig el mateix per a l'usuari de nova creació (ritona)
joan@portatil$ scp ~/.ssh/id_dsa.pub joan@192.168.1.130:/tmp joan@server$ cat /tmp/id_dsa.pub >> /home/ritona/.ssh/authorized_keys joan@server$ chmod 0600 /home/ritona/.ssh/authorized_keys joan@server$ rm -f /tmp/id_dsa.pub
i també em deixa entrar, després d'uns quants problemes.
SSH des de Windows
Com a l'institut, s'utilitza el client putty per establir una comunicació segura amb un servidor SSH i així poder fer una sessió interactiva.
Dir quins usuaris poder entrar per SSH
Per defecte, tots els usuaris poden entrar si especifiquen correctament el login i password.
En el fitxer de configuració podem posar la directiva AllowUsers al final de tot
echo "AllowUsers joan" >> /etc/sshd_config
i d'aquesta manera només pot entrar l'usuari joan. Si vull ficar varios usuaris, els separo amb espais en blanc en la mateixa línia.