Pràctica de connexió remota a una Raspberry Pi
Contingut
- 1 Identificació de les Raspberry Pi mitjançant protocol mDNS
- 2 Accés ssh mitjançant la IP
- 3 Adjunteu la Raspberry Pi a una VPN
- 4 Usuaris i grups
- 5 Accés amb el FileZilla
- 6 Feu accessible una nova carpeta mitjançant Samba
- 7 Accés sense contrasenya
- 8 Túnel Invers
- 9 AutoSSH
- 10 screen
- 11 Sortiu de la xarxa VPN gestionada per vosaltres
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.
Aquest altra tipus de placa (rb05 a la foto) s'accedix des d'un un sistema Linux:
ssh -o ServerAliveInterval=30 pi@robot05.local
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
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
Des de la vostra màquina Linux, 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
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.
screen
v) Persistència de les accions remotes
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.