Connexion à distance via le terminal sur macOS
Depuis que l'activité a repris sur le site, il y a maintenant 2 ans, je ne cesse de vous parler des nombreux avantages de l'utilisation du terminal, et des nombreux outils que nous pouvons y trouver notamment via Homebrew.
A chaque nouvel article sur l'un de ces outils, je me dis qu'il faut que j'écrive un article sur la connexion à distance via le terminal, car c'est souvent avec cette utilisation, que l'on tire tous les bénéfices des outils.
La connexion à distance se fait via un outil qui se nomme SSH, dont l'acronyme veut dire Secure Shell. Secure veut bien dire ce que cela veut dire, et le shell est l'ensemble qui contient et fait tourner un terminal.
SSH est disponible en standard sur macOS depuis les toutes premières versions de Mac OS X, il est aussi disponible sur l'ensemble des systèmes d'exploitation du monde Linux/UNIX.
Activer la connexion à distance sur macOS
Cependant, par mesure de sécurité, sur macOS, l'accès à distance est désactivé. En effet, comme peut de personnes sont capables de s'en servir, il était préférable pour Apple de le déconnecter afin d'éviter que n'importe qui puisse se connecter sur un Mac dont les identifiants et mots de passe serait trop facile à trouver.
Heureusement, pour les adeptes du terminal, il est possible d'activer très simplement cet accès, via Préférences Systeme.
La capture d'écran indique la commande à executer pour se connecter sur ce Mac avec le compte que vous utilisez. On y retrouve la commande SSH évoquée précédemment.
Attention, une fois activé, n'importe quel utilisateur de votre machine est capable d'y accéder à distance (pour peu que le réseau l'y autorise).
Vous devez donc être sur que l'ensemble des comptes du Mac sont suffisamment sécurisé avec des mots de passe qui ne sont pas trop facile à trouver, par exemple "jean" pour l'utilisateur "jean" ...
Car une fois connecté, l'utilisateur disposera des mêmes droits et sera capable de faire les mêmes choses qu'en étant connecté l'interface graphique.
Ma première connexion
Pour vous connecter au Mac, c'est très simple, il suffit, dans un terminal de taper
ssh utilisateur@machine
A noter que si vous n'avez actuellement qu'un seul Mac à disposition, vous pouvez vous connecter à lui-même et donc suivre le tutoriel.
L'utilisateur est le nom court du compte, il ne devrait contenir que des lettres ou des chiffres. La machine est le Mac sur lequel vous souhaitez vous connecter.
Par exemple, pour me connecter à mon Mac, je suis finalement ce que m'indiquer Préférences Système
ssh sky@MacPro.local
Si je ne connais pas le nom du Mac, je peux aussi indiquer son adresse IP, soit
ssh sky@192.168.12.4
Evidemment, pour se connecter, il faut que la machine distante possède le compte sur lequel vous souhaitez vous connecter. Ainsi, si mon compte sur la machine distante n'est pas sky, mais skymac, je dois indiquer
ssh skymac@MacPro.local
Ainsi, je suis connecté en tant que sky sur le Mac sur lequel je suis, mais je suis connecté en tant que skymac sur le Mac distant.
Une fois connecté, je peux y faire toutes les actions comme s'y j'étais devant la machine avec un terminal ouvert. Vous vous retrouvez donc avec les fichiers mais aussi les applications qui se trouvent sur le Mac distant, et plus du tout avec les éléments du Mac local.
Ainsi si vous souhaitez utiliser une application issse de Homebrew qui ne se trouve que sur l'ordinateur sur lequel vous pianotez, vous devrez l'installer aussi sur l'ordinateur distant.
Comme lorsque vous ouvrez un terminal sur votre Mac, la connexion par SSH vous place à la racine du dossier de l'utilisateur. D'ailleurs, à ce propos, faites attentions, si les deux Mac disposent de réglages identiques dans le terminal, il peut parfois être difficile de distinguer sur lequel on se trouve. Et il ne faudrait pas effacer des fichiers sur le Mac A alors qu'on voulait les effacer sur le Mac B, ou vice-versa.
Si vous disposez du même identifiant compte sur l'ensemble de vos Mac, vous pouvez vous en passer lors de la connexion SSH. Ainsi si je suis devant mon MacBook Air en tant que sky, pour me connecter à mon Mac Pro, je peux directement taper
ssh MacPro.local
Le Mac Pro demandera directement le mot de passe de sky.
Enfin, pour clôturer ce premier tutoriel sur SSH et la session en cours, il suffit d'indiquer la commande
exit
pour quitter la session et revenir à la connexion sur votre Mac local.
Quelle utilité pour la connexion à distance ?
Vous pourriez vous demander quel est l'intérêt de la connexion à distance, et lorsque Mac OS X est arrivé en 2000, je me suis posé la même question. Avec les années, je me suis rendu compte que ces connexions m'étaient de plus en plus utiles, jusqu'à ce que je ne puisse plus m'en passer.
L'utilité la plus évidente est lorsque l'on possède un Mac faisant office de petit serveur, il est possible d'y accéder sans forcément avoir besoin de lui mettre un écran. Cependant, comme nous l'avions déjà vu, nous pouvons nous y connecter via VNC. Mais ouvrir une connexion VNC pour ouvrir un terminal sur le Mac distant peut être optimisé avec la seule utilisation du terminal.
Lorsque l'interface graphique de macOS a planté (cela arrive rarement, mais cela arrive), il peut être intéressant de se connecter à son propre Mac depuis un appareil externe pour forcer à quitter l'application bloquante, voir redémarrer le Mac proprement plutôt que de lui infliger un redémarrage forcé, via le bouton d'allumage.
Si quelqu'un utilise physiquement le Mac, il reste disponible avec la connexion à distance.
Enfin, cela permet de faire exécuter des tâches à son Mac lorsque l'on est pas là. Par exemple, les mises à jour des applications de Homebrew peuvent prendre du temps, et monopoliser les ressources réseaux. Pourquoi ne pas les lancer lorsque vous êtes absents, au boulot ou au ciné, ainsi dès que vous rentrez, tout est prêt et vous n'avez plus à vous en préoccuper.
Cela peut être aussi pratique pour économiser des ressources. Reprenons l'exemple du MacBook Air, si je ne veux pas vider sa batterie inutilement, je peux faire exécuter les tâches lourdes sur le Mac Pro, telles de l'encodage vidéo ou des calculs 3D (sous réserve d'avoir des logiciels qui peuvent s'exécuter en ligne de commande). Cela permet aussi de conserver ses propres ressources pour continuer à travailler sur son poste.
Connexion depuis n'importe quel poste
Nous avons vu qu'il fallait activer les connexions à distance sur son Mac pour pouvoir si connecter. En faisant cela, nous activons le service SSH sur le Mac. Mais pour se connecter à un Mac distant, il n'est pas nécessaire que le Mac local ait les connexions à distance activées. Le service et le client SSH sont deux applications bien à part, et peuvent fonctionner indépendamment tant que nous avons un service activé quel part, et le client disponible autre part.
L'avantage est qu'il est possible d'utiliser un client SSH à peut prêt n'importe où, sur le Mac évidemment, nous venons de le voir. Toutes les distributions Linux/Unix disposent d'un service et d'un client SSH aussi.
Plus intéressant, il est possible d'installer un client SSH sur son iPhone ou sur son iPad. Pour ma part, j'utilise l'application Termius, que je trouve fort pratique. A noter qu'il ne s'agit que d'un client, il n'est malheureusement pas possible d'accéder au contenu de l'appareil dans l'autre sens.
Sur Windows, il existe une multitude de clients avec divers avantages, vous n'aurez pas de mal à en trouver un. Cepandant, Microsoft fait aussi des efforts dans ce sens, puisqu'un client SSH est disponible en béta depuis la mise à jour nommée "Fall Creators Update".
Pour l'activer, il suffit d'aller dans
- Menu Démarrer
- Paramètres
- Applications
- Gérer les fonctionnalités facultatives.
- Ajouter une fonctionnalité.
- Installer OpenSSH Client (Beta)
- Redémarrer
Une fois ces étapes faites, l'Invite de commandes de Windows disposera de la commande SSH.
Et nul doute qu'il doit aussi exister des clients SSH pour Android.
Et ce n'est qu'un début !
SSH permet de nombreuses choses. Cet article n'est que le premier d'une petite série qui permettra d'aller toujours plus loin dans l'utilisation de ce formidable outil.