#FOAF Renoir Boulanger RSS Feed Del.icio.us RSS Feed Renoir Boulanger Feed
* RSS
* Me joindre
Renoir Boulanger Un geek social et Linuxien de nature
* Blog
* Portfolio
* Projets
* CV
* À propos
Créer un tunnel SSH inverse pour pouvoir supporter à distance un ami utilisant Linux
Avez-vous déjà voulu accéder a votre ordinateur Unix/Linux/MacOS d’un ami, chez ou ailleurs, et
que vous avez besoin de l’aider a distance? En tant qu’utilisateur de Linux, si vous aider
quelqu’un d’autre qui n’Est pas habitué, il peut vouloir votre aide. Cette procédure peut vous
aider a l’aider, a distance. Ça vient de m’arriver. Je vais vous montrer comment … Continued
February 29, 2012
Avez-vous déjà voulu accéder a votre ordinateur Unix/Linux/MacOS d’un ami, chez ou ailleurs, et
que vous avez besoin de l’aider a distance? En tant qu’utilisateur de Linux, si vous aider
quelqu’un d’autre qui n’Est pas habitué, il peut vouloir votre aide. Cette procédure peut vous
aider a l’aider, a distance.
Ça vient de m’arriver. Je vais vous montrer comment j’ai fait.
Ce que j’ai utilisé:
1. Une machine avec OpenSSH que chaque personne à accès (une instance Amazon EC2?)
2. Créer un nouvel utilisateur temporaire pour la personne a aider
3. Ordinateur a réparer roulant Linux/Unix/MacOS/Cygwin (qui a OpenSSH serveur et client)
Ce que j’avait fait avec, en plus de cette procédure, c’est un script RC qui créait une
connection permanente, avec une connection SSH qui ne requiert pas de mot de passe.
L’idée étaait que peu importe le lieu ou mon ami se trouve, dès qu’il/elle a un lien à Internet,
j’ai accès a son ordinateur portable.
Ma procédure décrit comment créer un lien entre ces deux machines.
L’historique
Il y a quelques années j’ai fait le cadeau a ma mère d’un vieil ordinateur portable. Étant donné
qu’il était vieux et qu’elle n’a jamais vraiment utilisé d’ordinateur dans sa vie, j’ai pensé lui
configurer un Ubuntu qui avait tout ce qui est nécessaire.
Elle l’a utilisée pendant environ 3 ans. Je crois que ma maman sait maintenant qu’un navigateur
web n’est pas nécessairement Internet Explorer. Qu’un document n’est pas obligatoirement un
fichier “Word”. Aujourd’hui elle roule sous Windows. Parce que quelqu’un d’autre lui a fait le
cadeau et qu’il n’est pas porté a utiliser Linux comme moi.
Toujours est-il que pour l’aider j’utilisait ce processus pour entretenir son ordinateur sans
qu’elle ait rien a faire.
0. La machine accessible pour les deux
Surnommons cette machine “vm.somehost.com“.
Il faut que vous et votre ami ayez accès a cette machine sur le port 22. Si c’est votre machine,
vous pouvez forcément créer un nouveau compte pour votre ami qu’il utilisera pour initier le
tunnel entre sa machine et cet machine.
1. Sur le poste de votre ami
Dans mon exemple, son compte est “user“, sa machine s’appelle “friend-machine“.
Prérequis
1. OpenSSH qui est installé et qui roule.
En Mac OS, c’est dans Préférences, Partage, il y a une option Accès a distance … ah ces changements de noms pour la même chose.
2. Un compte utilisateur pour vos propres besoins
… Ou le même que votre ami, s’il vous donne un mot de passe Pssiiit. passwd sert a
changer un mot de passe en terminal!
Donc, assurez-vous que votre ami…
1. vous fournit un compte pour vous connecter sur sa machine (“friend-machine“)
2. Assurer que OpenSSH roule
Je vous écrit tout ça de mémoire. Une recherche sur comment activer OpenSSH et créer un
utilisateur qui y aura accès sur cette machine MacOS/Linux vous aidera plus que cet article.
2. Créer le tunnel sur la machine de votre ami
Si tout est fonctionnel, vous avez déjà passé le pire, lui expliquer c’est quoi un utilisateur,
si l’accès a distance ou SSH c’est quoi, et pourquoi vous lui demandez d’y accéder.
Expliquez-lui de ne pas utiliesr de mot de passe simple. Qu’il ne vous donne pas non plus son
mot de passe… s’il l’utilise ailleeurs (ou partout, c’est bien d’enseigner ça a ses amis).
Donc… lui faire taper la commande dans un terminal:
Le BUT de cet article, LA commande, UNE LINGE!
user@friend-machine$ ssh -nNT -R 1103:localhost:22 friendusername@vm.somehost.com
Ce qui se passera c’est que l’ami (qui a une machine qui s’appelle “friend-machine” dans cet
exemple) initie un tunnel SSH silencieux vers “vm.somehost.com” (le serveur accessible par vous
et votre ami) qui s’y connecte avec l’usager temporaire (“friendusername”).
Les options utilisés:
* n Sert pour éviter d’afficher des choses sur son terminal n’affiche rien (envoie vers
/dev/null)
* N Sert pour préciser de ne pas utiliser la ligne de commande, une fois connecté, il ne dira
rien.
* T Sert à ne pas allouer de pseudo terminal (pseudo-tty)
* R Sert a préciser un Tunnel inversé (Reverse) qui servira a exposer dans (“vm.somehost.com“)
au tunnel initié par (“friend-machine“) au port 22 à partir du port 1103 de
(“vm.somehost.com“).
3. Vous connecter de VOTRE poste, à la machine commune, à finalement le poste de votre ami.
Enfin. Il ne reste qu’a vous, vous connecter a cette machine commune, pour accéder au tunnel que
vous lui avez fait créer, et utiliser SA machine.
Il ne suffit que de se connecter sur vm.somehost.com sous votre compte habituel, initialiser un
screen puis vous re-connecter sur le port spécial qui vous donnera accès au poste
“friend-machine“.
Facile!!
En ordre:
renoirb@mon-laptop:~$ ssh vm.somehost.com
renoirb@vm:~$ screen
renoirb@vm: ~$ ssh user@localhost -p 1103
user@friend-machine:~$ uname -a
Darwin friend-machine 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.
3~1/RELEASE_I386 i386
En gros, je me connecte a vm.somehost.com, j’y initie une session screen, puis je me re-connecte
en SSH sur le port local 1103 ouvert par mon ami user@friend-machine (vous suivez toujours?) et
hop! Je suis sur la machine distante.
Screen
Avec Screen, je peut ainsi me détacher du terminal et m’y reconnecter plus tard sans arrêter les
choses en cours.
Pour se déconnecter et se reconnecter je fais ainsi
1. Connecter/reconnecter: screen -dd -R
2. Détacher (combinaison de touches): ctrl+a d
Finalement
Nous aurons entré quelques lignes de terminal et hop, nous avons accès a la machine de notre ami.
C’est sûr que vous pouvez jouer avec les tunnels et accéder aux autres services, mais je ne vous
expliquerai pas comment spécifiquement utiliser chaque cas.
Je vous laisse imaginer les cas de figure possible:
* Faire une mise a jour de paquets
* Réinstaller des programmes
* Accéder a un service qu’il a localement, comme un serveur web, etc.
… J’aime linux!
Sources
1. TechRepublic article Setting up a reverse SSH tunnel
2. HowTo Forge: Reverse SSH Tunneling
3. LinuxJournal: Power sessions with Screen
Comments are closed.
[cbf8c9036c204fe85e15155f9d70faec?s=500] Renoir est un passionné du Web et des Logiciels libres
qui habite sur l'Île de Montréal. Son présent emploi du temps est de contribuer au projet
WebPlatform.org en tant que Developer Operations engineer au sein du W3C. — Au cours des dix
dernières années il a majoritairement réalisé des sites et des applications web. Il lui arrive de
parler devant public de son expérience. — Sa passion converge vers les standards du web, les
technologies «front-end», l'architecture orienté service et l'architecture logicielle.
CAPTION: Mon Curriculum vitæ / My resumé
Version Française Web PDF
English version Web PDF
Also on …
* @renoirb on Twitter
* GitHub
* Google+
* renoir@w3.org
* Web Integration Review
* Programmation
* Technologies
* Techniques
* Logiciel libre
* Tranche de vie
Billets récents
* Recover Discourse from a backup, adjust domain name 2015-11-20
* Thoughts about improving load resiliency for CMS driven Websites 2015-08-12
* Managing my PGP/OpenPGP keys and share across many machines 2015-08-06
* Leaving W3C 2015-07-30
* Add OpenStack instance meta-data info in your salt grains 2015-05-22
Me trouver
LinkedIn
profile for renoirb at Stack Overflow, Q&A for professional and enthusiast programmers
[FSF Associate Member]
Zend Certified Engineer PHP 5.3
Ailleurs
* GitHub
* Geeklist
* W3C profile
* StackOverflow Careers resumé
* Twitter @renoirb
* SensioLabs Connect
* Stack Overflow
* LinkedIn
Search for: ____________________ Search
Archives
[Select Month_______]
Member of The Internet Defense League
Your Web, documented · WebPlatform.org
© 2005-2016 Renoir Boulanger — Déposé sous licence CC, Paternité Partage des Conditions Initiales
à l'Identique 2.0 (Canada)
Designed by @gabiviana.