Wednesday, January 11, 2023

conectare la pc de pe telefon utilizand termux si ssh

 Cum te conectezi la PC de pe telefon android utilizand termux si ssh.

 Se presupune ori ca utilizezi linux pe pc/laptop ori ai un server ssh pe windows.

Se mai presupune ca NU utilizezi autentificarea cu parola, ci doar cea bazata pe chei rsa. Cum setezi lucrul acesta pe server nu face obiectul textului de fata.

1. Serverul ssh de pe PC/laptop trebuie sa fie pornit, functional.

2. Descarci termux de pe f-droid sau github si instalezi aplicatia pe android. Suporta numai versiunile de android de la 7 inclusiv in sus.

3. Inainte de a porni aplicatia, intra in setari->aplicatii-> alegi termux si acorzi permisiunea de a accesa spatiul de stocare (important).

4. Pornesti termux, faci actualizarea la pachete si eventualele innoiri astfel:

pkg update && pkg upgrade

5. Daca serverul mirror pt pachete da erori poti alege din mai multe cu apt change repo ( cred ca asa e comanda, daca nu e asa cauta pe net "termux how to change repo").

6. Instalezi openssh cu pkg install openssh. In timpul instalarii se va genera perechea de chei public/privat, dar eu nu o folosesc pe aceea.

7. Generam o noua pereche de chei public/privat cu comanda

ssh-keygen -t rsa -b 4096 -f cheia-mea

unde -t rsa inseamna criptare si algoritm rsa, -b 4096 este marimea nu stiu cum (am uitat, nah...) iar -f cheia-mea specifica numele fisierului unde se va stoca cheia: cea privata se va numi cheia-mea, fara extensie, iar cea publica se va numi cheia-mea.pub

7a) Instalam extensia termux-api. Ea ne va permite accesul la spatiul de stocare al telefonului pentru ca va trebui sa copiem cheia publica a telefonului intr-un folder mai accesibil de pe telefon, sa nu stam sa bibilim prin spatiul de stocare pe urma....

pkg install termux-api

8. Copiem cheia publica in spatiul de stocare public al telefonului, de exemplu in directorul Documente (sau Documents, numele dosarului depinde de limba/regiunea utilizata in setarile telefonului).

cp cheia-mea.pub /storage/emulated/0/Documents 

9. Transferi cheia publica din telefon pe PC/laptop in orice dosar.

10. Deschizi fisierul cu notepad++ (atentie, nu cu notepad versiunea windows, ci cu notepad++, se gaseste pe net gratuit) selectezi si copiezi tot textul in clipboard (copy).

11. Deschizi sau creezi fisierul authorized_keys si lipesti  (pe o linie noua daca mai exista intrari, sau pe prima linie daca e gol) si lipesti continutul din clipboard (paste). Textul incepe cu "ssh-rsa.... si se termina cu ceva de genul user@host, de exemplu u-205@localhost)

12. Atentie, cand ne conectam din termux la PC trebuie sa specificam explicit cheia utilizata, vom utiliza cheia creata mai sus numita "cheia-mea" si eventual portul pe care asculta serverul.

Un exemplu:

ssh  -i cheia-mea utilizator@host -p 1500

In comanda de mai sus  -i cheia-mea specifica faptul ca utilizam cheia privata numita "cheia-mea", cea generata mai sus, -p 1500 specifica faptul ca ne conectam la portul 1500, iar user@host depinde de serverul ssh si utilizatorul de pe PC, adresa IP publica a PC-ului sau domeniul asignat etc.... ( se presupune oricum ca ai mai lucrat cu ssh, altfel nu te interesau chestiile astea si nu ajungeai pe pagina asta).

Ce poti face mai departe? Poti controla toate procesele de pe PC, poti copia fisiere intre PC si telefon, poti face tunneling ssh si redirectare porturi etc...

E o chestie draguta, dar ceva si mai dragut este setarea unui server VPN pe ruterul de acasa, instalarea unui server VNC pe PC si tunelarea ssh a serverului x de pe pc pe telefon (pe telefon folosesti un vnc viewer pentru a controla pc-ul de acasa exact ca si cum l-ai controla cu any desk sau team viewer, numai ca mai sigur...).

Daca ai si alte idei de utilizare le poti scrie in comentariu, necesita aprobare, dar la o luna, doua mai dau pe aici si o sa fie aprobat...