Sessió 5. Gestió Remota, SSH

De Wikijoan
Dreceres ràpides: navegació, cerca

Pot ser amb interfície textual o amb interfície gràfica (escriptori remot)

Interfície textual: Open SSH

Històricament hi havia el telnet i el ftp

el telnet és transparent, el que circula per la xarxa no està encriptat (es podia capturar el password).

rlogin i rsh (remote shell) feien el mateix, sota el mateix protocol. Anys 80, eines insegures.

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ó.

scp, sftp -> són el copy i el ftp, però en versió segura

Clau privada i la clau pública. La clau privada és com una clau, i la clau pública és com un candau.

sshagent: encripta les comunicacions entre el client i el servidor


Contingut

SSH. Instal.lació

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.

(Ja està instal.lat)

-> buscar 'paquets virtuals' al Google


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:

# ForwardX11 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í

Per saber la nostra adreça a Internet:

/sbin/ifconfig

i mirem la IP de la eth0

la meva és 147.83.75.138

Exercici

anem a crear l'usuari 'convidat'

adduser convidat

(pwd: convidat)

Com que ja estava instal.lat i potser hi havia coses d'un curs anterior, esborro el directori del ssh:

des del meu home (cursice), i connectat com a cursice:

$ 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 és:

el meu company és:

147.83.75.139 (invitat/invitat)

$ ssh invitat@147.83.75.139

i em connecto després de proporcionar el pwd.

estem connectats, i ara volem utilitzar un client de X11:

$xterm

-> can't open display, display is not set

sortim:

exit

Per tal de poder-ho fer:

$ ssh -X invitat@147.83.75.139

i ara el xterm ja funciona i tinc una consola, que és un client de consola del meu company.

Al mateix temps, tinc un convidat que ha entrat en la meva màquina.

Si vull saber què està fent (quins processos utilitza):

$ ps aux
$ ps aux | grep convidat

una altra prova: obro un emacs (editor) que no està instal.lat en la meva màquina, sinó en la seva màquina:

Secure Copy, SCP

copiar un fitxer remotament (secure copy):

$ scp sessio5 invitat@147.83.75.139:ruta

la ruta pot ser relativa o absoluta (sense / o amb / inicial)

si fico només dos punts al final (:), ho ficaré en el home del seu usuari (/home/invitat)

$scp *.pdf invitat@147.83.75.139:

si no especifico el fitxer, funciona al revés, copiem des del servidor remot cap al local, especificant l'origen i el destí.

els metacaràcters de bash s'apliquen localment. Si fico un *, ho mirarà localment. Per prevenir-ho ho faré així:

$ scp invitat@147.83.75.139:'*' .

'*' vol dir tots els fitxers en el host remot, i el '.' significa copiar al meu directori local.


També amb el tar podem crear fitxers remotament (tar suporta ssh):

$tar zcf invitat@147.83.75.139:paquet.tgz .

(empaqueto ., que vol dir la ruta local actual)

lo que és remot és el destí del tar és a dir, puc fer un backup remot.

per tal de què funcioni, ssh ha d'estar instal.lada. És a dir, tar invoca ssh quan ho faig amb aquesta sintaxi.

echo $RSH_COMMAND -> mirar una variable de sistema.

Està buida. Aquesta variable hauria de dir que utilitza tar per a transferència remota, tanmateix, sembla ser que no li cal.


Secure FTP, SFTP

$ sftp invitat@147.83.75.139
sftp> help
ls .ssh/ -> apareix el fitxer known_hosts
cat .ssh/known_hosts -> cada paràgraf representa un host

si m'he connectat a dos màquines, apareixeran dos paràgrafs

claus públiques

$ ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key

(/home/cursice/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in

/home/cursice/.ssh/id_dsa.

Your public key has been saved in

/home/cursice/.ssh/id_dsa.pub.

The key fingerprint is:

2a:da:70:0f:cf:0f:94:5a:84:0b:ef:cd:5c:4d:61:95

Ara envio la clau pública generada al meu company:

$ scp id_dsa.pub invitat@147.83.75.139:~/.ssh

~ significa el home

$ echo ~

ens deixàvem una cosa:

en el directori remot on volem accedir, fem:

ip_company$cd .ssh
ip_company$cat id_dsa.pub >> authorized_keys
ip_company$exit

>> fa un append al fitxer authorized_keys, si no existeix el crea

cursice@ali15:~/.ssh$ cat id_dsa.pub

ssh-dss

AAAAB3NzaC1kc3MAAACBAImNcVEm7UHLwGU+vrUojtdP8+Ws8lvE+rFJp4rmKNKIa+kxLmfSAc2IESg3qZpbfzXfdQJ+3wqO96NaFgcRrQfZ3mQdgT01ZuAJZQdQIN2WfzzNYCt4dUTCJsPlfyj40SJt/9D9l2kzBIz9wxqgBDh9U8yOoK2hC0DpYVQcDSTdAAAAFQCG5/EoZIqCE4TVTtmt1pbtaSzNpwAAAIBwfOJwQZXU+kWoewCRgV9mMsgbgr7hMBBlkaXHnCTtDHvcDqFb9XseOP+XUAqBz5fvc+dd2/XLPFLVLk1xBj5ya+FXe+Fg+pQ0yei8Wrl6Ugy3OiAgMqOIj/e+jpbHcs7V7A1l2rrSG3jnS2NpVnU9Pio8p6YbDzDyZzRUrypuQQAAAIBqWa853YSesfLVkX5bMZkXBaniiQwaV1HRCwyBVOdAQCiTOzX3e9FZIGAMVSxo2FTFSVslR3rw1maU79svkpiHjhkCLsPo7xOado/xCUsP/4dChHbqq5rjCGvJ+HHRFa/FR/g+XUTUR6U6ykworZQH906v0r5lxZJwMvWGqS1CnA==

cursice@ali15

i d'aquesta manera creem una clau autoritzada pública, i no ens demanarà el password quan fem ssh contra aquesta màquina.

És a dir, la clau pública que he generat l'he enviat al servidor, i l'ha autoritzat. Això pot ser perillós si algú sap aquesta clau pública. Aquest mètode es diu 'autenticació de clau pública'.

es pot fer un script automatitzat via tar i via ftp per a fer còpies de seguretat, i amb aquesta autorització no em demana el password, i així la còpia de seguretat és totalment desatesa.

RSYNC

sincronització entre fitxers i directoris, entre màquines remotes. Utilitza el port 873

$ sudo apt-get install rsync

creem el fitxer "reserva" al home

$ cp reserva original

rsync no ho copia tot, sinó que té un algorisem molt sofisticat que només transmet per la xarxa la diferència.

$ rsync -e ssh -cavz ~/reserva

cursice@147.83.75.139:/home/cursice/reserva

de moment només sustitueix l'un per l'altre, no té en compte la data de modificació dels fitxers.

Per evitar problemes he de posar l'hora correcte en les màquines que vull sincronitzar. Per posar la màquina correctament en hora, utilitzem el paquet ntp, concretament el paquet openntpd

ps aux | grep ntp -> per veure que el procés s'està executant

/etc/init.d/ntpd start -> per engegar el servei

no funciona, deu haver algun fitxer de configuració

si funcionés, s'hauria d'actualitzar l'hora després d'uns 30 segons.

sudo apt-get install ntp -> desinstala el openntp per defecte, i ara sí que funciona i se'm posa bé l'hora

el rsync, per defecte hauria de fer un merge dels dos fitxers.

Control remot d'escriptoris

XDM: KDM i GDM són els frontals de pantalla gràfica de Linux

cada entorn d'escriptori té el seu XDM

KDM -> KDE

GDM -> GNome


VNC -> Virtual Network Computing

instal.lo els següents paquets, en aquest ordre:

vino, vnc-common, xvnc-viewer, tsclient, krdc, krfb

vino -> és el servidor

tsclient -> és la màquina client

El vino està a Escriptori -> Preferències -> Escriptori remot

El tsclient està a Aplicacions -> Internet -> client de Terminal Server


Si em connecto com a client, el servidor X és la meva màquina, i el client és l'escriptori remot (des del punt de vista del servei X).

El servidor X (per entendre'ns, la meva pantalla), té uns esdeveniments que generen el meu ratolí i teclat.

per connectar-me com a client fico la IP del company: 147.83.75.140:0 (el 0 és perquè una CPU podria tenir varies pantalles)


RDP: Remote Desktop Protocol -> permet connectar-se a Windows XP

si vull connectar-me a un Windows, en el meu Terminal Server he d'escollir el protocol RDP.

Per provar-ho, el XP Professional del profe és 147.83.75.150

El XP només admet una connexió. Entres i s'expulsa l'altre que hi havia abans.


FreeNX -> és un sistema molt ràpid, i va bé quan tenim un ample de banda limitat. Va amb protocol SSH


l'aplicació no està en els repositoris estàndard, i per això afegim una línia en el fitxer source per tal que a l'instal.lar-ho sàpiga on anar a buscar-ho afegeixo:

deb http://www.linux.lk/~anuradha/nx/ ./
$ apt-get update (important fer el update, doncs sense fer-ho no em deixa fer la instal.lació)
$ apt-get install nxserver freenx

Al contrario que VNC, en vez de usar el protocolo RFB (Remote Frame Bufer), FreeNX usa un nuevo esquema de compresión del entorno X-Window, que permite controlar un escritorio remoto incluso con una conexión de módem de 56 Kbps. El tráfico del servidor X se comprime y transmite por SSL usando una conexión SSH que puede ser resumida automáticamente en caso de ser interrumpida.

Además tiene la ventaja de que el programa guarda en caché los elementos gráficos ya mostrados (menús, iconos, decoraciones de ventanas...) por lo que en lugar de hacer una segunda petición para mostrar esos elementos, se muestran desde local.

El fabricant és NoMachine, i hi ha una versió per a Windows (només el client)

El cliente de Windows se puede bajar de la página web de la empresa desarrolladora de NX que es NoMachine.

La página de descarga es http://www.nomachine.com/download_fil2.php?Prod_Id=16 en donde también se pueden bajar algunos añadidos que nos solucionen problemas con los tipos de letra.

El cliente windows que estará en formato exe, sirve para todas las versiones de Windows, empezando por las vesiones 9X y terminando en la 2003.

es poden connectar diversos usuaris al mateix temps.

Va més ràpid perque la informació viatja comprimida, i perquè els elements gràfics es guarden localment en caché

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines