Ceci est une ancienne révision du document !
Accéder visuellement à une machine distante via ssh
Introduction
Après une installation chez des amis, bien souvent il me faut accéder à leur machine quelques temps après.
Pour se faire, j'ai pensé à SSH1) que je n'utilisais pas et le visionneur de bureau distant déjà installé Vinagre.
Celà me permet une prise en main graphique de la machine (Vinagre) en sécurisant d'abord cette connexion (SSH)
Le client est la machine qui prendra le contrôle (en gros mon pc)
Pré-requis
Côté serveur
- Installer le paquet apt://openssh-server (pour rappel: sur la machine que l'on cherche à joindre)
sudo apt-get install openssh-server
Dans un terminal vérifier que le service est bien actif:
status ssh
si la réponse est "ssh start/running, process XXXX" (ou XXXX est un nombre) c'est que le service est bien actif sinon il faut le démarrer par:
sudo service ssh start
ou
sudo /etc/init.d/ssh start
- Connaitre son adresse IP du réseau local (pour une machine derrière une box):
ifconfig | grep inet
(devrait donner une adresse du type 192.168.0.10)
- Sur la box rediriger le port 222) sur le pc
Dans la section Internet sélectionner la partie Configurer le routeur.
Vérifier alors que le mode routeur est bien activé et dans le bas de cette page redirigé le port 223) vers l'adresse 192.168.1.XX:22 récupérée plus tôt.
Enregistrer ces nouveaux paramètres et de rebooter la freebox ensuite.
: UDP ou TCP ? moi j'ai mis les 2
- Connaitre son adresse IP hors réseau local en se rendant sur http://monip.org ou dans un terminal:
wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1
- Désactiver les effets graphiques : Système → Préférences → Apparences → Onglet "Effets" → cocher "Aucun".
- Penser à modifier la configuration du fichier /etc/ssh/sshd_config. Pour en savoir plus, se reporter à la section sécurité.
Côté Client
Rien tout est installé (un café si vous voulez ).
Première Connexion
- Dans un terminal saisir
ssh -L 5900:localhost:5901 Login@Adresse-ip:Port
Login est le nom de l'utilisateur qui se trouve sur le serveur.
Adresse-ip est l'adresse "internet" du serveur.
Port est le port indiqué à rediriger dans l'interface de gestion (donc 22 par défaut ou bien 2764 pour reprendre l'exemple ci-dessus).
L'option -L 5900:localhost:5901 est facultative. C'est elle qui permet d'accéder au serveur graphique distant en passant par ssh. Si vous comptez utiliser uniquement le terminal, vous pouvez retirer cette partie
Vous devriez avoir une demande de confirmation la première fois pour valider votre connexion au serveur, puis le mot de passe du compte distant (donc le mot de passe du user sur le serveur) doit vous être demandé.
Vous êtes maintenant sur le serveur (= la machine de votre ami).
Et maintenant ?
Vous avez donc accès à la machine distante, le problème c'est que votre ami ne vois pas forcément ce que vous faites ou vous n'êtes pas très à l'aise avec la ligne de commande.
Pour rappel, vous avez laissez ouvert le terminal précédemment connecté.
Retour visuel de la ligne de commande
Sur le serveur, demander à l'utilisateur d'ouvrir un screen avec le nom de son choix (exemple pote)
screen -S pote
et de votre côté entrer dans le terminal connecté
screen -x pote
Ce que vous saisirez sera maintenant affiché en parallèle sur le terminal distant (donc sous les yeux de votre ami).
Retour graphique de l'environnement
Si vous souhaiter accéder graphiquement au serveur, vérifier sur celui-ci que **vino-server est bien dans les applications au démarrages donc bien actif:
ps -ef | grep vino-server
si vous avez une ligne avec /usr/lib/vino/vino-server c'est que c'est bien le cas sinon saisissez
/usr/lib/vino/vino-server &
Demandez de désactiver les effets graphiques (Système/préférences/apparences/onglet effet choisir aucun.
De votre côté, entrer
vinagre localhost:1
Une demande d'autorisation doit apparaitre sur l'écran serveur, demandé à votre ami de valider.
Vous devriez être maintenant sur le pc de vote ami et ce dernier doit voir toute vos actions.
Quitter la connexion distante
Côté client, pour quitter votre accès à distance, quittez vinagre et les terminaux ouverts. Côté serveur, vous pouvez arrêter le serveur ssh par
sudo service ssh stop
ou
sudo /etc/init.d/ssh stop
et vino-server par
sudo killall vino-server
Quitter également les différents terminaux si vous avez utilisé screen
Sécurité
- Afin de sécuriser un peu plus, il est possible de choisir la redirection d'un autre port que le 22 sur l'interface de gestion (exemple le 2764 vers 192.168.0.10:22). La liste des ports habituellement usités sont visible dans le fichier /etc/services. Choisissez en donc un qui n'y apparait.
- si vous ne souhaitez pas que le "démon" ssh ne soit activé à chaque démarrage (cas par défaut à l'installation su Lucid), modifier le fichier /etc/init/ssh.conf et commenter (ajouter un # au début de) la ligne start on filesystem.
Pour reprendre la main les prochaine fois il faudra donc demander à votre ami de démarrer ssh tel qu'indiqué dans les pré-requis.
- Même chose pour vino-server, que vous pouvez retirer des applications au démarrage (Système/préférences). Penser à le démarrer en cas de besoin (cf cette section)
Mise en page et suite plus tard