L'objectif : accéder en ssh à l'ordi de nos chers proches qui sont parfois bien embêtés avec des bugs, ou qui ont besoin de mise à jour.
On passe par un tunnel SSH : l'ordi source (dont l'utilisateur est appelé “Machin”) ouvre une connexion SSH vers un serveur (Lapin). Depuis Lapin, on peut alors entrer dans ce “tunnel” et bidouiller en ssh.
Sur l'ordi-source, il faut activer le serveur ssh. Paramétrage, en modifiant le port et l'user autorisé :
#Mettre un port autre, c'est toujours mieux Port 22 Protocol 2 Ciphers aes256-ctr,aes192-ctr,aes128-ctr MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com PermitRootLogin no StrictModes yes UsePrivilegeSeparation sandbox PasswordAuthentication no ChallengeResponseAuthentication no PubkeyAuthentication yes UsePAM yes PermitEmptyPasswords no MaxAuthTries 6 LoginGraceTime 30 AllowUsers machin X11Forwarding no PrintLastLog yes PrintMotd no AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server
C'est bien “Machin” comme user autorisé ici, car on se connectera ensuite en tant que “machin@localhost” sur cet ordinateur.
Redémarrer ensuite le service :
sudo service ssh restart
Créer aussi une clé ssh (s'il n'y en a pas déjà) :
ssh-keygen -t ed25519
Ici, une clé sans mot de passe est pertinente…
Faire la config ssh de l'user afin de se simplifier la tâche :
Host tunnel Hostname "ip du serveur" User taupe Port "port ssh du serveur" IdentityFile /home/machin/.ssh/id_ed25519
Créer l'user spécial pour le pont
useradd taupe -m -U -s /bin/bash sudo su taupe mkdir /home/taupe/.ssh nano /home/taupe/.ssh/authorized_keys chown -R taupe: /home/taupe/.ssh chmod 0700 /home/taupe/.ssh/ chmod 0600 /home/taupe/.ssh/authorized_keys ssh-keygen -t ed25519
Bien ajouter la clé de Machin dans authorized_keys
, ainsi que tout autre user qui aurait besoin de ce genre de pont.
Éditer /etc/ssh/sshd_config, autoriser “taupe” et lui donner une règle spéciale :
# ... AllowUsers taupe Match User taupe AllowTcpForwarding yes AllowAgentForwarding no ForceCommand /bin/false
Attention, “Match user” doit être à la fin. Vérifier que tout va bien :
sudo sshd -T
et relancer
sudo service ssh restart
Enfin, ajouter la clé publique de taupe dans les clés autorisées sur l'ordi source.
nano /home/taupe/.ssh/authorized_keys
Tester le tunnel :
ssh -R 127.0.0.1:2222:127.0.0.1:22 tunnel
Explication :
On créer un dossier dans /home/user/.local/share/ appelé “tunnel”, dans lequel on va mettre une jolie icône (à trouver où vous voulez), ainsi qu'un script super basique :
#!/bin/bash ssh -R 127.0.0.1:2222:127.0.0.1:22 tunnel
Adaptez le dernier port si besoin !
On va ensuite faire un joli bouton à cliquer.
Il suffit de créer un .desktop.
[Desktop Entry] Type=Application Name=Dépannage GenericName=Dépannage Comment=Obtenir de l'aide quand on a des soucis sur l'ordinateur Categories=Utility; Exec=/home/machin/.local/share/tunnel/tunnel.sh Icon=/home/machin/.local/share/tunnel/tunnel.png Terminal=true
Adaptez le chemin de l'utilisateur !
Côté ordi à dépanner, cliquer sur le bouton dans le menu, dans la section accessoire ! Le script se lance, le tunnel s'ouvre. Les options font qu'un terminal est ouvert, cela permet d'avoir un retour visuel même si la personne aidée ne va pas s'en servir ; quand elle fermera le terminal, cela fermera le tunnel.
Côté dépanneur, se connecter au serveur, sur l'user taupe (sudo su taupe
), et faire
ssh machin@127.0.0.1 -p 2222
Et nous voilà en ssh sur l'ordi des personnes qui ont besoin d'un dépannage !