Se connecter à un PC ou serveur distant en SSH-VNC depuis un téléphone Androïd.

Tout petit billet pour compléter celui sur SSH+VNC. J’utilise également mon téléphone (HTC Legend sous Androïd/Linux 2.1) pour contrôler le serveur de l’école, depuis n’importe où, à partir du moment où je peux me connecter, en 3G+, ou en Wifi. Ceci est possible avec les logiciels gratuits « ConnectBot » et « AndroïdVNC » grâce à  ce petit tutoriel :

http://sites.google.com/site/androgeeek/

La seule difficulté, c’est d’apprendre à jouer de la souris et du zoom, car un téléphone reste un téléphone … l’écran est de moins de 4 pouces.

Prendre le contrôle de son PC de travail depuis la maison en mode graphique avec VNC et SSH

Je peux déjà gérer les documents qui sont sur le pc-serveur de l’école grâce à SSH (voir ce billet). Mais cela ne me suffit pas, je veux pouvoir utiliser le pc de direction de l’école, sans aucune restriction, depuis chez moi, comme si j’étais physiquement au bureau, imprimer mes documents sur l’imprimante de l’école, faire les mises-à-jour, gérer le réseau, utiliser les diverses applications  etc.

Cela m’a demandé un peu de lecture, car si la solution est simple, elle est noyée dans de nombreux documents très (trop) complets qui m’ont perdu. C’est grâce aux conseils d’un internaute du forum ubuntu-fr.org (Tamarou) que j’ai compris la simplicité de la démarche.

Ceci utilise vnc (virtual network computing). Il serait possible de contrôler un pc distant avec uniquement vnc (ce que nous verrons pour commencer), cependant son niveau de sécurité est insuffisant et il est préférable de l’encapsuler dans du SSH.

Accéder et contrôler un pc distant avec VNC seul :

(déconseillé, mais à expérimenter temporairement pour vérifier que ça fonctionne)

Ubuntu est déjà équipé avec vino (qui gère la partie serveur, le pc à contrôler) vinagre (pour le client, mais assez moyen à l’usage) ou encore TSC- Terminal Server Client (qui est beaucoup plus productif d’après mon expérience). Cependant, TSC n’utilise plus le protocole vnc par défaut et il faut l’ajouter en cliquant sur ce lien apt : xvnc4viewer.

Pour utiliser vnc seul, il suffit d’ouvrir le port 5900 de son firewall et de son routeur.

Sur le serveur,

cliquer sur « Système »-> »préférences »-> »Bureau à distance »

Cochez les cases pour autoriser « d’autres utilisateurs à voir votre bureau » et « d’autres utilisateurs à contrôler votre bureau »

Décochez « chaque accès doit être confirmé », sinon quelqu’un doit rester à coté du serveur et on ne recherche pas vraiment cela dans le cas présent

Cochez « l’utilisateur doit saisir ce mot de passe » et choisissez un mot de passe de 8 caractères vraiment complexe, style « M4cy!9@Ix »

Choisissez l’affichage de l’icône selon votre intérêt. Personnellement, dans ce cas, je choisis « N’afficher une icône que lorsque quelqu’un est connecté », mais si on cherche à surveiller ses ados, on fera autrement.

Sur le client,

Cliquez sur « Applications »-> »internet »-> »Terminal Serveur Client »

Il y a des onglets pour régler les options à votre convenance.

Dans la case ordinateur, donner l’adresse IP du serveur, ou le nom de domaine DynDNS ou autre si comme moi vous subissez une adresse dynamique. (on peut avoir besoin de préciser le port dans certains cas,  Mon-IP:5900)

Dans la case protocole, choisissez VNC et cliquez sur « se connecter ».

Le password choisi sur le serveur est demandé.

Le bureau distant s’ouvre selon les options choisies.

C’est simple et fonctionnel, mais bien moins sûr que du ssh, alors comment ajouter la sécurité au prix d’une manipilation de plus ?

Accéder et contrôler un pc distant avec VNC et SSH :

(la documentation demande à ce que l’on edite le fichier de configuration de ssh en tapant dans un terminal
sudo gedit /etc/ssh/sshd_config
et de créez  la ligne suivante :
GatewayPorts yes
Enregistrez
Je ne suis pas sûr de l’importance de cette phase, mais je l’ai effectuée, n’hésitez pas à m’éclairer.)

Il faut utiliser pour cela la ligne de commande. Ouvrez un terminal sur le client et recopiez cette ligne en l’adaptant :

ssh user@server.net -L5901:localhost:5900

Où vous remplacez « user » par l’identifiant que vous utilisez sur le pc à contrôler, « serveur.net » soit par l’adresse IP du pc à contrôler, soit par le nom de domaine style dynDNS choisi (exemple blablabla.homelinux.net) et 5901 par le port que vous voulez et que vous n’utilisez pas déjà (5901 est un bon choix).

Cette ligne va faire passer vnc (qui utilise par défaut le port 5900), non pas par le port 5900, mais par SSH (port 22 habituellement) et au niveau local va lui attribuer le port 5901 pour qu’on puisse le trouver à la maison.

Le mot de passe administration système du pc à contrôler est demandé (celui qu’on utilise habituellement pour administrer le pc à contrôler)

ATTENTION : ce terminal doit resté ouvert tout le temps où la prise de contrôle est nécessaire, car le processus SSH se fermera avec lui.

Pour trouver mon bureau distant du travail, à la maison, je vais demander au client VNC d’ouvrir l’adresse locale sur le port 5901.

Pour cela, j’ouvre un second terminal (ou un second onglet du premier terminal) et je recopie cette ligne :

xvnc4viewer 127.0.0.1 :5901

Un mot de passe VNC est demandé. Il s’agit de celui qui a été choisi pour protéger VNC (« M4cy!9@Ix »).

Vous contrôlez le pc du travail, depuis votre canapé \o/.

Accéder au serveur de l’école depuis n’importe où grâce à SSH

Je travaille beaucoup à la maison pour préparer mes cours, mes vidéos, mes bandes sonores, gérer l’administratif etc. et j’avais, jusqu’à présent recours à dropbox, qui permet de synchroniser plusieurs dossiers de plusieurs pc. Cependant, cette solution qui fonctionne très bien n’est pas libre, et utilise un serveur que je ne contrôle pas (ce qui est particulièrement gênant quand on travaille avec des enfants et leurs familles). De plus, le service est limité en taille.

Je cherchais depuis des mois une solution libre et sécure pour accéder à mes dossiers de travail depuis n’importe où, et je suis tombé des nues lorsque j’ai découvert que cela relève d’un protocole basique d’internet, le sftp … Je me suis trouvé bien bête.

À l’école : d’abord, sur le serveur de l’école, sous GNU/linux bien sûr, j’ai installé le paquet openssh-server puis fail2ban pour éviter les attaques en force brute (3 tentatives de connexion ratées bannissent l’IP du bot pour 15 minutes).

Je dois ensuite autoriser les connexions sécurisées depuis l’extérieur en ouvrant un port du routeur (livebox, dans mon cas, à l’école). J’y accède par l’adresse 192.168.1.1 à taper dans un navigateur. puis renseigner les login et password pour accéder à la livebox. Enfin, dans l’onglet serveur LAN : nouvelle entrée, nom : SSH FTP par exemple, accès activé : oui, du port : 22 au port : 22, protocole : TCP,  Adresse IP locale, celle du serveur (192.168.1.xx, pour la connaître, il suffit de taper ifconfig dans une console)

Ensuite, comme le FAI de l’école est malheureusement « orange », je n’ai pas d’IP fixe, alors je dois demander à un service tiers de toujours synchroniser mon adresse IP du serveur avec une adresse choisie, disons mon-ecole.homelinux.org, qui elle sera fixe, même si l’IP de la livebox change. Imaginons que l’IP de la livebox change , je n’ai aucun moyen de la connaître depuis la maison et je ne peux plus accéder au serveur à distance, c’est ballot …

J’utilise pour cela les services gratuits de dyndns.com . Je choisis un « free domain name » (par exemple « mon-ecole.homelinux.org »), je clique sur « Add ». Je choisis un identifiant et un mot de passe, j’indique une adresse email valide. J’attends (par mail) le lien pour activer le service et voilou.

Il faut que je configure le service dns de la livebox. Je retape 192.168.1.1 dans le navigateur internet, renseigne les login et password. Puis configuration avancée, réseau, dynDNS. Je renseigne l’identifiant et le mot de passe choisis chez dyndns, ainsi que le nom d’hôte (mon-ecole.homelinux.org par exemple). On applique, OK et voilà, c’est fini pour le serveur.

Depuis la maison : je crée, dans la barre de menu (clic droit sur la barre puis « ajouter au tableau de bord »), un raccourci non pas d’application, mais d’emplacement. Je choisis une icône « kivabien » et je renseigne les cases :

  • Nom -> Serveur-École
  • Emplacement : sftp://login@mon-ecole.homelinux.org:22/home/login , où il faut remplacer « login » par votre login de démarrage du serveur, « mon-ecole.homelinux.org » par le domaine choisi chez dyndns et  22  par le port choisi sur la livebox si vous avez pris autre chose que 22.
  • Commentaire (facultatif) : un lien direct pour gérer les dossiers et fichiers du taf, la classe ! (par exemple)

Vous cliquez sur cette icône et lors de la première connexion, une fenêtre vous demande de confirmer cet accès d’exception. Vous confirmez. On vous demande le mot de passe du serveur (le mot de passe d’administration du serveur), que vous pouvez ne renseigner que pour ce moment, pour cette session ou pour toujours, puis une fenêtre nautilus s’ouvre … c’est tout simplement le /home/login du serveur à distance !

On peut y faire ce que l’on veut : y transférer des fichiers depuis la maison, en télécharger, en supprimer, les déplacer etc. sans aucune limite de taille.

Bref, quelques minutes d’actions adaptées à un débutant comme moi, pour travailler sur le serveur de l’école comme s’il était chez moi … la classe !

La chasse aux fautes avec gobby, outil d’édition collaborative.

J’ai la chance d’enseigner à des élèves qui sont maintenant habitués à utiliser des ordinateurs, à écrire sur traitement de texte, gérer les images dans un texte, faire de la messagerie instantanée sécurisée (jabber), aller chercher des documents sur un serveur depuis un client lourd, les modifier et les ré-enregistrer sur le serveur, etc.

Je cherchais à les introduire à l’élaboration de texte collaborative en temps réel. Travaillant dans une école, il était évidemment inimaginable d’utiliser des outils basés sur un serveur que l’on ne contrôle pas.

Le cahier des charges était le suivant :

  • outil collaboratif en temps réel,
  • pas de serveur on cloud non contrôlé,
  • simple d’installation et d’utilisation,
  • libre de préférence.

… et le premier outil qui a répondu à toutes ces exigences était … gobby.

l’installation est extrêmement simple : il suffit de cliquer sur ce lien pour les utilisateurs debian, ubuntu et dérivés  apt://gobby, mais gobby est également utilisable sur d’autres architectures comme fedora et dérivés, BSD et dérivés (dont macOSX) ou même les vieillissants windows. (cherchez votre bonheur par ici, quelque soit ce que l’on vous fait subir comme OS).

Ensuite, il suffit de démarrer l’application. Sur l’un des ordinateurs (que l’on choisit arbitrairement comme hôte du travail), on clique sur « créer une séance », puis on choisit un pseudo, une couleur et on clique sur hôte. Sur les autres ordinateurs, on clique sur rejoindre une séance. On choisit un pseudo et une couleur. puis on cherche (sous réseau local) la séance qui a été créée sur le premier ordinateurs. Enfin on clique sur « valider ». Il peut y avoir jusque 8 ordinateurs travaillant simultanément sur le même document.

Il suffit alors de double-cliquer sur le document sur lequel on agit afin d’y participer.

C’est d’une simplicité enfantine. Cela tombe bien, j’enseigne à des 7-9 ans.

Ce que nous avons fait comme première utilisation : « la chasse aux fautes ».

Je prépare un texte bourré de fautes sur un simple éditeur de texte (accord sujet-verbe, accord nom-adjectifs, majuscules, mots invariables à connaître par cœur) et je fais un copier-coller dans gobby. Dès que le texte apparaît sur les divers ordinateurs, les élèves corrigent les fautes et les corrections sont faites avec leur couleur. Quand toutes les « fôtes » sont corrigées, nous comptons les points.

Je donne des pistes d’aide dans la messagerie associée (partie basse de l’écran) pour les aider quand ils sèchent un peu.

Je pensais qu’il faudrait deux à trois séances pour que les élèves comprennent le principe du travail collaboratif, et qu’il ne soient pas dérangés par le fait des travailler à plusieurs en temps réel sur le même document. Mais cela s’est fait directement, sans aucun soucis. La chasse aux fautes était pliée en 16 minutes.

Comme quoi, les limites ne sont pas celles de l’utilisateur, mais celles de ceux qui prétendent faire des produits innovants. J’aurais bien aimé que le libre existe quand j’étais enfant …

Se débarrasser de ces cochonneries de TinyURL.

Je dois assez souvent subir des liens inexplicites du style tinyURL. Il s’agit d’un gadget prévu pour les réseaux dits « sociaux » dont le nombre de caractères par post est limité et qui amène les utilisateurs à écrire en langage SMS et à donner des liens non-explicites.

Par exemple, au lieu d’écrire :

« article sur les interrogations, à propos de l’arme nucléaire, à Paris et à Londres » sur ce lien

http://www.monde-diplomatique.fr/2010/05/LEYMARIE/19076

certaines personnes écriraient :

« art/?surArmNuclàParis&Ldres » : http://tinyURL/ducon123

en trouvant cela tellement mode et « in » et intelligent.

Personnellement, je trouve cette pratique inutile et irrespectueuse. Si un réseau dit « social » est limité à 140 caractères par post, il ne m’intéresse pas, et je ne l’utilise pas, mais je ne veux pas subir les pratiques liées à ce type d’intranet lorsque j’utilise internet. Or, de nombreuses personnes sont devenues des fans des tinyURL, y compris sur des applications moins limitées. Je ne connais pas leurs raisons et je m’en fiche. Je ne veux simplement pas subir leur pratique.

J’ai découvert aujourd’hui une extension pour firefox qui fait disparaître ces horribles liens obscurs et les remplace par de véritables hyperliens html.

le lien principal est http://www.longurlplease.com/ et il permet d’installer un plugin que l’on peut aussi trouver ici :

https://addons.mozilla.org/en-US/firefox/addon/9549/

Une fois ce plugin installé, les personnes adorant les tinyURLs pourront continuer leurs étranges pratiques, cela sera transparent pour vous, car ce seront les véritables liens hypertextes qui s’afficheront, de façon transparente, en lieu et place des liens obscurs.

Les « maternelles » parlent des logiciels libres à l’école

Un tout petit billet pour relayer l’intelligent propos d’Emma Rota sur les logiciels libres à l’école, dans le cadre de l’émission « les maternelles » le 17 mars 2010 sur france5.

Lien texte ici : Emma Rota le 17 mars 2010

et vidéo ci-dessous au format libre ogg, lisible directement par les navigateurs modernes (c’est à dire presque tous sauf IE) :

il suffit de cliquer sur l’image

Toujours utiliser la dernière version de Firefox, y compris sur une ancienne version d’ubuntu.

Un petit billet rapide pour aide-mémoire sur l’utilisation d’un petit script en python nommé ubuntuzilla qui permet de garder firefox à jour, y compris lorsqu’on est obligé de rester bloqué sur une ancienne version d’ubuntu en raison d’un driver proprio pour un périphérique important (un TBI dans mon cas).

J’ai trouvé cette solution sur le site de korben .

Il faut d’abord télécharger ubuntuzilla sur cette page :

http://sourceforge.net/projects/ubuntuzilla/files/

puis installer le .deb à l’aide d’un simple double-clic.

Ouvrir une console (Applications->Accessoires->Terminal) et y glisser cette ligne :

ubuntuzilla.py -a install -p firefox

Répondre aux questions posées (y c’est yes / oui en anglais ^^ c’est compliqué linux non ?) le code pour le français de France est 24 et il faut attendre sans s’inquiéter si ça dure un peu, car il y aura des clé de sécurité gpg de crées pour les mises à jour automatiques.

Et voilà !

Votre navigateur firefox sera toujours à jour, quelque soit l’ancienneté de votre version d’ubuntu. Et ça c’est vraiment bien.

Exemple, aujourd’hui le 8 avril 2010, sur jaunty :

Lucid lynx arrive dans …

La nouvelle version du système d’exploitation GNU/Linux ubuntu sortira dans quelques jours. Il portera le doux nom de Lucid Lynx ou ubuntu 10.04 (10 pour 2010, et 04 pour avril) et sera maintenu à « long terme » (version LTS, long term support), c’est à dire jusque avril 2013 pour la version desktop et  avril 2015 pour la version serveur. J’utilise déjà cette version  desktop à mon domicile et au travail depuis quelques semaines en version alpha et béta : je suis très satisfait. Alors quand tout marche bien, autant communiquer sur ce fait ^^.

Un réseau domestique avec samba ou comment rendre les pc de la maison ou du travail communiquants entre eux.

Remarques préliminaires :

  1. J’utilise GNU/Linux à la maison comme au travail, alors pourquoi m’embêter avec samba, puisque GNU/Linux fait déjà tout ça avec un clic droit par NFS ? Tout simplement parce que parfois, je dois travailler avec des gens qui utilisent, par choix ou par ignorance, des solutions … comment dire … compliquées … et samba leur permet, à eux aussi, de profiter du confort du réseau.
  2. Cette solution samba est multi-plateforme et donc certainement transférable sous OS propriétaire, mais je n’ai aucune idée de comment le faire simplement. Je ne suis qu’un simple utilisateur, pas un bidouilleur. Je ne veux pas m’embêter avec ça.
  3. Ceci est ma solution et ne prétend pas être le tutoriel parfait. Mais cette solution est installée en 10 minutes et se révèle, chez moi comme dans mon école, productive sans aucun problème, y compris avec divers systèmes d’exploitation sur le réseau.
  4. Si quelqu’un connaît un tutoriel comparable pour GNU/Linux ou pour des OS moins évidents, un lien est bienvenu dans les commentaires et j’éditerai le billet.

La première chose est d’installer samba sur le pc qui deviendra le serveur (sur plusieurs si on veut). Pour les ubunteros, debianistes etc… voici le lien d’installation (1 clic et c’est installé) : apt://samba. (pour les autres OS, voir sur les forums de support idoines)

Il faut fermer et réouvrir la session pour que samba soit pris en compte.

J’utilise aussi une interface graphique pour gérer les dossiers à partager : apt://system-config-samba (installation en un clic aussi, pour les autres OS, voir sur les forums de support idoines).

Ensuite il suffit d’aller dans système -> administration -> samba pour lancer l’interface graphique.

La fenêtre apparaît, je clique sur ajouter.

Une seconde fenêtre apparaît,

  • je clique sur naviguer pour choisir le dossier que je souhaite partager (ici ce sera le dossier « public » de mon Home).
  • Je le renomme en « partage-public » pour plus de lisibilité.
  • Je coche « inscriptible » et « visible » pour que tous (sur le réseau) puissent le visualiser et l’utiliser.
  • Accès : j’autorise  l’accès à tous (plus simple)
  • Valider

Le plus dur est fait ^^.

Maintenant j’essaie d’accéder à ce dossier depuis un autre PC du réseau (filaire ou wifi) de l’entreprise, de l’école, la maison etc.

Je clique sur raccourcis -> réseau -> réseau windows -> workgroup -> « le nom de mon PC serveur » -> « nom du dossier partagé »

PATATRAS : impossible de monter ce dossier !

Ben oui, GNU/Linux est sécure, il faut donner le droit de passage à samba dans mon Home, sinon le système s’autoprotège.

Pour cela, j’ouvre un console (Applications -> accessoires -> Terninal)

Je tape d’abord une ligne de commande pour que le passage soit autorisé (droits 711)  :

chmod 711 /home/user (ou user est votre login sur le pc serveur)

puis

ls -ld /home/user (ou user est votre login sur le pc serveur)

Je vais aussi ajouter des autorisation dans les paramètres généraux de la configuration de samba : je tape dans un terminal

sudo gedit /etc/samba/smb.conf

et dans la partie global settings, je rajoute ces deux lignes :

client lanman auth = Yes
lanman auth = Yes

Je sauvegarde et je quitte.

Il faut aussi gérer les permissions du dossier public et de ses sous dossiers (droits administrateur+clic droit sur le dossier, puis accès au dossier : création et suppression de fichier, ainsi que accès au fichier : lecture et écriture à tous, et enfin appliquer les permissions au fichiers inclus.)

Je retente : pas de soucis.

Mais j’aimerais une petite icône pour ne pas me taper le

raccourcis -> réseau -> réseau windows -> workgroup -> « le nom de mon PC serveur » -> « nom du dossier partagé »

à chaque fois… :/

Pas de problème, sur chaque autre PC du réseau domestique, je fais un

  • clic droit dans la barre de menu, puis
  • ajouter au tableau de bord
  • lanceur d’application personnalisé
  • ajouter
  • type : emplacement
  • nom : ce que je veux, par exemple : dossier partagé du serveur
  • emplacement : smb://nom du serveur/nom du dossier partagé/
  • commentaire : ce que je veux pour que ce soit explicite
  • clic sur l’icône pour la mettre à mon goût.

Et voilà, c’est fini. Dès lors que votre PC serveur est allumé et relié au réseau, tous les autres PC reliés au même réseau peuvent :

  • ouvrir le dossier partagé par un simple clic,
  • lire et utiliser son contenu,
  • ajouter, modifier ou supprimer son contenu.

Idéal pour la maison tout comme pour le travail collaboratif au bureau ou à l’école. Mes élèves peuvent ouvrir leur dossier personnel de travail depuis n’importe quel PC de l’école et reprendre leurs documents, les modifier et les enregistrer comme s’ils se servaient toujours du même PC. Simple et confortable.

Faire un petit film tutoriel en GIF avec byzanz.

Dans le cadre de mon travail, j’essaie de rendre les élèves le plus autonomes possible, y compris en informatique. Ceci me demande de fabriquer de petits tutoriels, mais il faut qu’ils soient aussi simples à afficher qu’une image.

byzanz est un logiciel pour GNU/Linux qui permet de faire cela. Il filme votre écran, mais au lieu d’exporter le tutoriel en film, comme le fait très bien GTK-RecordMyDesktop, il exporte une image animée, un fichier.gif .

Pour installer Byzanz, c’est extrêmement simple (pour les distributions utilisant aptitude, comme debian ou ubuntu) : il suffit de cliquer sur ce lien : apt://byzanz et d’installer avec apturl. Ensuite, faites un clic-droit sur l’une des barres de bureau et sélectionner « ajouter »-> »Enregistreur de bureau ».

Voir l’installation ici sur la documentation ubuntu-fr.org pour plus de détails.

Il y a trois possibilités :

  • enregistrer l’ensemble du bureau
  • enregistrer une fenêtre
  • enregistrer une zone.

J’utilise cette technique pour commettre des petites animations gif pour que mes élèves acquièrent les bases de l’utilisation d’un traitement de texte. Voici un exemple pour apprendre à souligner les mots par lots (cliquez sur l’image pour l’afficher en plein écran) :