Terminal et packages Linux sur Android : Termux for the win

Je ne vais pas vous cacher que j’ai eu un coup de cœur pour cette application méconnue (injustement je trouve). Je suis sous un Android avec surcouche constructeur et je me désintéresse de cet O.S qui me limite énormément. J’ai peut-être trouvé un moyen de reprendre la main dessus. Un peu de Linux dans ce monde de brutes !

Termux a été présenté chez memo-linux et n’a pas reçu l’accueil qu’il méritait. Je vais faire mon job de blogueur et je vais vous donner des petites larmes aux coins des yeux (enfin j’espère). Je vous invite à lire mon article précédent sur SSHDroid et Termux avant de continuer.

Vous pouvez donc l’installer soit à partir du Google Play Store soit à partir de F-Droid. Votre Android (en version 5.0 ou supérieure) doit être connecté au WiFi évidemment. Une fois que c’est fait, suivez le guide pour le reste de la visite !

On va lancer l’application en appuyant dessus, vous devriez avoir Installing… pendant une bonne minute puis un petit message. Maintenant on va lancer quelques commandes sur notre Android (tablette ou téléphone).

Le paquet openssh contient le serveur SSH et le client. Des clés SSH pour le client seront automatiquement créées durant l’installation de ce paquet. Elles se trouvent dans /data/data/com.termux/files/usr/etc/ssh/ et je vous rappelle qu’aujourd’hui la clé SSH la plus solide c’est la ed25519 (merci Adminrezo !).

On colle la clé SSH /home/babar/.ssh/id_rsa.pub de notre pc (ou de notre server@home) sur le téléphone (si vous n’en avez pas ssh-keygen). Personnellement j’ai branché le téléphone en USB sur le pc puis j’ai collé la clé SSH dans Mémoire de stockage interne, Download. Vous pouvez également vous envoyer un mail avec la clé SSH en pièce jointe ou la récupérer via un wget en la mettant à disposition sur une url publique.

On lance quelques commandes sur notre Android.

Pour trouver l’adresse IP de notre Android, on lancera la commande ifconfig | grep 'inet addr' dessus. Comme on peut le lire ici, le port 8022 en écoute du serveur SSH n’est pas modifiable. Sur notre pc/serveur on tape la commande ssh -p 8022 adresseipdumatosandroid. Pour rappel -p 8022 c’est pour se connecter au port 8022.

On est à présent connecté en SSH sur notre Android, on va sécuriser un peu.


Voilà vous pouvez jouer maintenant. Mais je vais vous aider un peu quand-même.

Vous arrivez dans le dossier /data/data/com.termux/files/home normalement (je vous invite à faire pwd pour confirmer). Les fichiers de configuration des packages Termux sont dans /data/data/com.termux/files/usr/etc/ mais ne touchez pas à celui de ssh (/data/data/com.termux/files/usr/etc/ssh/sshd_config). Vos photos se trouvent normalement dans /storage/sdcard0/DCIM/Camera et si vous avez une carte SD supplémentaire dans /storage/external_SD/DCIM/Camera/. A ce que j’en ai vu les applications Android c’est dans /storage/sdcard0/Android/data/. Petit rappel vous n’avez pas les droits root !

Pour récupérer les photos avec Termux ça donnera la commande suivante à lancer à partir de votre pc/serveur :
rsync -e "ssh -p 8022" -av adresseipdumatosandroid:/storage/sdcard0/DCIM/Camera/ ~/Images/

Si on ferme Termux alors on ne peut plus se connecter en SSH. Une fois Termux relancé il est donc nécessaire de lancer la commande sshd sur notre Android pour pouvoir se connecter en SSH dessus. Pour « recharger » le serveur SSH, il faut le tuer avec pkill sshd puis le lancer avec sshd.

Personnellement j’ai testé quelques packages tous fonctionnels mais ne pouvant pas jouer avec les fichiers de configuration, je suis un peu en train de me ronger les ongles. Enfin bon wol (Wake on LAN), ncdu, ranger, nano, python qui marche sur son Android, ça fait juste déjà très très plaisir ! Pour utiliser wol, un exemple : wol d4:ce:f29:05:15:ca ou /data/data/com.termux/files/usr/bin/wol d4:ce:f29:05:15:ca.

Pour lister tous les packages disponibles apt list, pour chercher un package apt search ssh, pour désinstaller un package apt remove nano. Je vous laisse consulter la documentation sur le management des packages.

Pour l’aide générale c’est ici, le groupe de discussion c’est , pour apprendre à se servir de l’application sur Android c’est ici. Il faut laisser appuyer son doigt sur l’écran de notre Android pour avoir accès au menu notamment (copier/coller, fullscreen, help, etc.). Enfin pour les raccourcis claviers sur notre Android, c’est ici. Pour faire Ctrl+x par exemple, ce sera le bouton Volume down sur votre Android + x. Pour le pipe | ce sera le bouton Volume up sur votre Android + l.

Quelques précisions ici sur les packages de base fournis avec Termux, il y a aussi une page pour les packages suggérés (Unison, Duplicity) si des développeurs veulent aider (vous gagnez votre place au paradis et ma gratitude éternelle). Pour ma part le paquet qu’il manque c’est incontestablement mosh.

A titre d’info il y a un petit jeune qui s’amuse à compiler des horloges avec gcc et git : aclock, tty-clock. Enfin bon c’est avec son tuto que j’ai compris comment installer le serveur SSH. Je vous conseille de jeter un œil à ses autres articles genre celui-ci où il joue avec l’API de Termux pour afficher des notifications.

Selon les commentaires sur cet article je verrai le sujet du prochain article sur Termux (Termux en root ou la sauvegarde avec rsync ou crond fourni avec BusyBox o/) sauf si tout le monde s’en fout lol. En attendant il y a un paquet aria2, lighttpd, php5… et puis on peut aussi faire python2 -m SimpleHTTPServer (il faut préalablement installer python 2 avec apt install python2 qui met 5 bonnes minutes à s’installer) dans le dossier /storage/sdcard0/DCIM/Camera/ et ainsi aller récupérer avec notre navigateur internet nos photos sur http://adresseipdumatosandroid:8000 o/

C’est fou comme un petit ps aux | grep ssh vous donne l’impression d’être à la maison ;)

Je répondrai à vos commentaires, critiques et mots d’amour ce soir car c’est déjeuner familial pour moi ce midi. Tcho les filles et amusez-vous bien !

Déjà 4 avis pertinents dans Terminal et packages Linux sur Android : Termux for the win

Au lieu d’installer python 2.
En python > 3.5 (version par défaut du apt installation ) on peut lancer:

`Python -m http.server`

    Salute,

    Je viens de me relire c’est vrai que ma phrase fait con. Je sais pour python -m http.server, merci pour ta remarque qui rétablit un peu la mauvaise tournure de ma phrase (qui était davantage là pour expliquer qu’on peut aussi installer/utiliser Python 2).

    Tcho !

La discussion est malheureusement close.