Pràctica de connexió remota a una Raspberry Pi

De Wiki d'en Jordi Binefa
La revisió el 11:48, 7 març 2019 per Jordi (discussió | contribucions) (AutoSSH)
Dreceres ràpides: navegació, cerca

Identificació de les Raspberry Pi mitjançant protocol mDNS

Aquest tipus de Raspberry Pi Zero W es poden accedir des de la xarxa JESUITESFP d'aquesta manera:

A la foto hi surt r07 (pot haver-hi entre r00 i r30). Per accedir-hi mitjançant ssh des d'un sistema Linux:

ssh -o ServerAliveInterval=30 pi@rpizw07.local

L'opció ServerAliveInterval serveix per a que es pugui mantenir la connexió ssh i tramet un byte nul cada cert temps, en aquest cas cada 30 segons.

caption


Aquest altra tipus de placa (rb05 a la foto) s'accedix des d'un un sistema Linux:

ssh -o ServerAliveInterval=30 pi@robot05.local
caption


Accés ssh mitjançant la IP

a) Un cop heu entrat a la Raspberry Pi Zero W assignada, heu de trobar quina és la seva IP. Un cop ja sabeu quina és, i l'heu apuntat, heu de sortir de la connexió SSH.

b) Amb la IP trobada a l'apartat anterior accediu-hi mitjançant el programa putty fent servir la IP i no pas el seu nom (hostname)

Adjunteu la Raspberry Pi a una VPN

c) Adjunteu la Raspberry Pi Zero W assignada a una xarxa VPN de ZeroTier gestionada per vosaltres. Si sou un grup de dos heu d'ajuntar-ho a dues xarxes VPN de ZeroTier; una per membre del grup (l'àmbit de xarxa de cada usuari ha de ser diferent i ambdós han de ser diferents a 172.30.x.x).

d) Sortiu de la sessió. Entreu a la Raspberry Pi Zero W assignada fent servir una aplicació de mòbil. Feu una captura a on es vegi el nom de l'equip (hostname).

Usuaris i grups

Instal·leu el paquet de Debian per a poder fer servir mkpasswd:

sudo apt install whois

e) Afegiu-hi els usuaris usr01 i usr02 (amb contrasenyes contraSeNYa01 i contraSeNYa02, respectivament) membres d'un nou grup anomenat usuaris:

sudo useradd usr01 -g  users  -d /home/usr01  -m  -s  /bin/bash -p $(mkpasswd  contraSeNYa01)

f) Feu que aquests dos nous usuaris siguin membres dels grup sudo i dialout:

sudo usermod -aG sudo usr01
sudo usermod -aG dialout usr01

també es podia haver fet al pas previ fent:

sudo useradd usr01 -g  users  -d /home/usr01  -m  -s  /bin/bash  -G sudo,dialout -p $(mkpasswd  contraSeNYa01)

g) Sortiu de la connexió ssh. Entreu remotament a la Raspberry Pi Zero W assignada autentique-vos, cada membre del grup, com a usr01 i usr02.

h) Dins del vostre directori /home/usr0x, feu una nova carpeta anomenada xxyyzz (essent xx les dues primeres lletres del vostre nom, yy les dues primeres del vostre primer cognom i z les dues primeres lletres del vostre segon cognom. Per exemple Josep Ros Pineda seria joropi).

Accés amb el FileZilla

i) Feu servir el programa Filezilla per a pujar a la vostra carpeta, feta a l'apartat anterior, un arxiu de text, anomenat quiSoc.txt, amb el contingut del vostre nom i dos cognoms.

j) Fent servir l'ordre cat al terminal remot visualitzeu el contingut de l'arxiu quiSoc.txt que acabeu de pujar.

Feu accessible una nova carpeta mitjançant Samba

k) Sortiu i hi entreu amb l'usuari pi. Instal·leu els paquets del servidor Samba:

sudo apt-get install samba cifs-utils

en cas de que aquests paquets ja hi siguin instal·lats, desinstal·leu-los:

sudo aptitude purge samba cifs-utils

i torneu-los a instal·lar.

l) Afegiu l'usuaris pi (amb contrasenya raspberry) a Samba:

sudo smbpasswd -a pi

m) Feu una còpia de seguretat de l'arxiu smb.conf:

sudo cp /etc/samba/smb.conf smb.old

n) Feu la carpeta /home/pi/compartit donant-li tots els permisos d'accés:

mkdir /home/pi/compartit
chmod 0777 /home/pi/compartit

o) Editeu l'arxiu smb.conf:

sudo nano /etc/samba/smb.conf

i hi inseriu:

[pi Compartit]
comment = Carpeta RPi compartida
path = /home/pi/compartit
writeable = yes
create mask = 0777
browseable = Yes
valid users @users
force user = pi

p) Reinicieu el servei Samba:

sudo /etc/init.d/samba restart

q) Verifiqueu que podeu accedir des de Windows. Feu servir el navegador d'arxius per a pujar a la vostra carpeta un arxiu de text, anomenat quiSoc.txt, amb el contingut del vostre nom i dos cognoms. Des de la Raspberry Pi Zero W, fent servir el programa nano afegiu-hi cursant un cicle d'informàtica a l'Escola del Clot. Des de Windows verifiqueu que el contingut de l'arxiu quiSoc.txt ha estat modificat.

Accés sense contrasenya

r) Des de Linux a la Raspberry

Genereu una clau al vostre ordinador Linux (si no existeix ~/.ssh/id_rsa.pub):

1- Obriu una sessió de terminal.

2- Creeu la carpeta ~/.ssh, en cas de que no existeixi:

mkdir -p $HOME/.ssh

3- Aneu al directori ~/.ssh:

cd ~/.ssh

i premeu Enter

4- Genereu les vostres claus:

ssh-keygen -t rsa

5- Premeu Enter per a contestar totes les preguntes per defecte.


Desplegueu la clau a la Raspberry Pi Zero W assignada:

6- Des de la vostra màquina Linux, entreu (canviant robot01 pel vostre hostname assignat):

scp ~/.ssh/id_rsa.pub pi@robot01.local:temp_id_rsa_key.pub

premeu Enter i entreu la contrasenya quan us ho demani (la contrasenya per defecte és raspberry).


7- Obriu una sessió SSH a la vostra Raspberry Pi des del vostre ordinador Linux (canvieu robot01 pel vostre hostname assignat):

ssh -o ServerAliveInterval=30 pi@robot01.local

premeu Enter i entreu la contrasenya quan us ho demani (la contrasenya per defecte és raspberry).

8- Creeu la carpeta ~/.ssh, en cas de que no existeixi:

mkdir -p $HOME/.ssh


9- Afegiu la vostra clau a l'arxiu authorized_keys:

cat ~/temp_id_rsa_key.pub >> ~/.ssh/authorized_keys

10- Esborreu l'arxiu amb la clau temporal:

rm temp_id_rsa_key.pub

11- Protegiu l'arxiu de claus SSH:

chmod 600 ~/.ssh/authorized_keys

12- Protegiu el directori SSH:

chmod 700 ~/.ssh

13- Sortiu de la sessió i torneu-hi a entrar. Si tot ha anat bé, hi podeu accedir sense introduir la contrasenya.


s) Des de la Raspberry a Linux

Feu el procés invers de l'apartat anterior (a on diu Raspberry serà la vostra màquina Linux i a on diu Linux serà la vostra Raspberry).

Túnel Invers

caption


t) Túnel invers

Des de Linux (canviant robot01.local per la IP assignada per la VPN del ZeroTier):

ssh -o ServerAliveInterval=30 -R 12345:localhost:22 pi@robot01.local

Fen servir el putty accediu a la Raspberry Pi Zero W assignada i feu una connexió a la vostra màquina Linux (canvieu smx2 pel vostre nom d'usuari a la màquina Linux):

ssh -p 12345 smx2@localhost

Un cop heu verificat el funcionament, sortiu dels dos terminals.

AutoSSH

u) autossh

Instal·leu l'autossh a la vostra màquina Linux:

sudo apt install autossh

Executeu l'autossh (canvieu robot01.local per la IP assignada per la VPN del ZeroTier):

autossh -M 65500 -o ServerAliveInterval=30 -R 12345:localhost:22 pi@robot01.local

screen

Sortiu de la xarxa VPN gestionada per vosaltres

x) Assegureu-vos d'accedir a la Raspberry Pi Zero W assignada fent servir el nom de l'equip (per exemple rpizw07.local) o la IP assignada per la xarxa JESUITESFP. I no pas des de la IP assignada per la VPN de ZeroTier.

y) Desadjunteu-vos de les xarxes de ZeroTier gestionades per vosaltres.