====== Synergy ====== **Synergy** permet d'utiliser un seul clavier et souris pour piloter plusieurs ordinateurs du même réseau. Les ordinateurs peuvent être sous Linux, Windows ou MacOS. Ce tutoriel montre comment paramétrer et utiliser Synergy sur Ubuntu. Attention ! Synergy n'est pas vraiment sécurisé ! Vous allez mettre en place quelque chose qui permettra à un autre ordinateur de contrôler le clavier et la souris du vôtre, utilisez donc Synergy de préférence sur votre réseau local ou un réseau de confiance. Il existe un moyen de sécuriser un peu plus le fonctionnement de Synergy en l'utilisant avec OpenSSH : [[http://pchelin.ca/2010/05/23/tunneling-synergy-over-ssh/]] > FIXME On peut éventuellement ajouter les infos avec OpenSSH. ===== Installation ===== La manière la plus simple est d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **synergy**. ^ Installer en 1 clic((pour Ubuntu ≥ 7.10 seulement)) ^ | [[apt://synergy|{{ apt.png }}]] | Voilà pour l'installation de Synergy sur une Ubuntu. Si vous souhaitez l'installer sur un autre système, comme Windows, vous trouverez toutes les informations nécessaire sur le [[http://synergy2.sourceforge.net/index.html|site de Synergy]]. Il existe une interface graphique, nommée quick synergy, pour la configuration de synergy. Cherchez quicksynergy dans la logithèque ===== Installation d'une version récente ===== L'installation proposée dans la section précédente permet d'installer [[http://synergy2.sourceforge.net/index.html|synergy2]], dont la dernière version remonte à 2006. Il existe une autre version mise à jour régulièrement: synergy-plus. Les deux versions utilisent un fichier de configuration identique et des options similaires, et les exécutables ont le même nom (n'essayez pas d'installer les deux en même temps). Synergy-plus corrige de nombreux bugs et [[http://synergy-foss.org/download/|des paquets .deb pour Ubuntu (ou Debian) 32 et 64 bits sont disponibles ici]]. Synergy-plus est sous licence GPL mais il est demandé 5$ par utilisateur pour le télécharger ===== Configuration ===== Maintenant que Synergy est installé, il va falloir le configurer. Cependant, vous devez le configurer sur au moins deux machines différentes puisque configurer Synergy sur une seule machine n'a pas vraiment d'intérêt. Je vais vous expliquer comment le configurer aussi bien en tant que serveur qu'en tant que client, mais seulement sur Ubuntu. Encore une fois si vous souhaitez le configurer pour un autre système référez-vous aux instructions sur le [[http://synergy2.sourceforge.net/index.html|site de Synergy]]. ==== Configuration du serveur ==== Pour configurer le serveur Synergy, créez le fichier ///etc/synergy.conf// (ou un fichier //~/.synergy.conf// si vous préférez une configuration pour un seul utilisateur seulement, mais dans ce cas vous ne pourrez pas démarrer automatiquement synergy avant de vous être connecté), puis remplissez ce fichier de cette manière : section: screens hoary: arthur: end section: links hoary: right = arthur arthur: left = hoary end C'est un exemple de configuration tiré de mon synergy.conf. La signification des paramètres de configuration est la suivante : * **hoary** est le nom de ma machine principale, c'est elle qui exécutera le serveur Synergy. La machine qui a le serveur est celle qui possède le clavier et la souris utilisé, les autres machines ne sont que des "écrans" supplémentaires en quelque sorte. * **arthur** est le nom de la machine client (c'est une autre Ubuntu). * **section: screens** est la partie qui liste les machines qui seront utilisées en fonction de leur hostname. * **section: links** définit de quelle façon la souris quittera l'écran d'une des machines pour passer sur une autre. Ici on a placé l'écran de **hoary** à gauche de celui d'**arthur**, donc si la souris va tout à droite de l'écran de **hoary** elle arrivera sur la gauche de celui de **arthur**, et inversement. On aurait aussi pu placer **ubuntu42** au-dessus de **arthur** en spécifiant //up// au lieu de //left//, //down// au lieu de //right//, etc... ==== Configuration du client ==== Il n'y en a pas, il suffit d'installer Synergy. :-) ===== Utilisation ===== ==== Serveur ==== Pour lancer le serveur exécuter la commande : synergys -f Si votre fichier « synergy.conf » est dans un endroit différent, vous pouvez le spécifier en utilisant : synergys -f -c /endroit/de/votre/synergy.conf Il est possible de chiffrer les communications, il faut alors calculer le hash de son mot de passe : echo -n MonMotDePasse > tmp.log md5sum tmp.log Le résultat md5 est utilisé pour lancer le serveur : synergys -f --crypto-mode cfb --crypto-pass 1c934b25d3a85c8bbb28a00a4f5e1457 # ofb, cfb, ctr et gcm possibles en tant que cryptage ==== Client ==== Pour un client (dans ce tutoriel le client est aussi exécuté sous Ubuntu) : synergyc -f Si le serveur a l'adresse IP //192.168.0.1//, on a donc : synergyc -f 192.168.0.1 De même que pour le serveur, il est possible de chiffrer la communication : synergyc -f --crypto-mode cfb --crypto-pass 1c934b25d3a85c8bbb28a00a4f5e1457 192.168.0.1 **Notes :** * L'option « ''-f'' » dit à Synergy de ne pas s'exécuter en tâche de fond, mais dans le terminal, ce qui est utile lorsque l'on fait des tests. Pour interrompre Synergy, il suffit de taper Ctrl+c dans ce terminal. * Si la commande est exécutée sans l'option « ''-f'' », Synergy se lance alors indépendamment du terminal, vous pouvez alors fermer le terminal sans craindre de tuer Synergy. * Lorsque vous mettrez Synergy en service définitivement, pensez à ôter l'option « ''-f'' » ! Cette méthode fonctionne aussi avec un autre poste sous Mac OS X. ===== Configurer pour un démarrage automatique ===== Vous ne voudrez probablement pas le lancer manuellement à chaque démarrage de votre machine, voici comment le paramétrer pour un démarrage automatique. Dans les méthodes ci-dessous, les commandes sont décrites pour le client synergy (/usr/bin/synergyc). Mais pour le serveur, il suffit de remplacer la commande synergyc par la commande synergys (et d'adapter les options en conséquence, puisque contrairement au client, la commande synergys ne nécessite pas de HOSTNAME). Il faut tout d'abord savoir quel est votre gestionnaire de session. Depuis la version 11.10, LightDM est le gestionnaire de session par défaut pour Ubuntu et ses variantes Xubuntu et Lubuntu (depuis 12.04 seulement pour ce dernier). Si vous utilisez une version antérieure d'Ubuntu (10.04 LTS ou 11.04), votre gestionnaire de session graphique est GDM2. Si vous utilisez une variante d'Ubuntu, votre gestionnaire de session est peut-être différent. Consultez le portail des gestionnaires de sessions pour repérer votre gestionnaire de session graphique. ==== Methode 1 : avec LightDM, dès l'écran de connexion=== Si votre gestionnaire de session est lightDM, ce qui est certainement le cas si vous disposez d'une version d'Ubuntu relativement récente, cette méthode est de loin la plus simple. Editer le fichier /etc/lightdm/lightdm.conf pour y ajouter la ligne greeter-setup-script=/usr/bin/synergyc HOSTNAME si vous configurez une machine client, ou la ligne greeter-setup-script=/usr/bin/synergys pour démarrer le serveur. Vous pouvez ajouter les mêmes options que précédemment, comme --crypto-pass (côté serveur //et// client) ou encore -c /endroit/de/votre/synergy.conf (uniquement côté serveur). Sous Ubuntu 14.04 64bit, le fichier de configuration a changé d'emplacement. C'est ce fichier que vous devez modifier : /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf Comme synergys va démarrer dès l'écran de connexion, il ne pourra pas utiliser le fichier ~/.synergy.conf. Assurez-vous donc d'avoir enregistré les paramètres du serveur dans le fichier /etc/synergy.conf. Cette simple ligne devrait permettre à Synergy de démarrer dès l'écran de connexion, puis de continuer à fonctionner une fois l'utilisateur logué. ==== Methode 2 ==== === Avec GNOME === Pour ajouter Synergy au démarrage automatique de votre session, allez dans //Système → Préférences → Application au démarage//, puis cliquez sur ajouter. La commande est celle que vous utilisiez au chapitre précédent **sans** l'option « ''-f'' » (cela empêcherait le chargement de Gnome en attendant indéfiniment la fin de Synergy). === Avec KDE 3 (et supérieurs ?) === Dans le fichier **/etc/kde3/kdm/Xsetup**, [[:tutoriel:comment_editer_un_fichier|ajouter]] une seule fois l'appel à Synergy # Appel à Synergy /usr/bin/synergyc Cet appel sera opérationnel pour KDM comme pour la session ouverte. === Avec un autre environnement === Si vous utilisez un service graphique pour vous identifier, il est assez simple de lancer automatiquement Synergy. Il suffit d'ajouter un petit script exécutable dans le répertoire « /etc/X11/Xsession.d/ » avec une première ligne spécifiant d'exécuter le script avec bash et une seconde avec la commande que vous voulez exécuter, par exemple pour un client Synergy qui doit se connecter a un serveur a l'adresse 192.168.0.1 le script serait composé de:(n'oubliez pas d'utiliser sudo pour pouvoir écrire dans le dossier ///etc// ou n'importe quel de ses sous-répertoires) #!/bin/sh /usr/bin/killall synergyc sleep 1 /usr/bin/synergyc 192.168.0.1 Attention si vous ajoutez le « ''-f'' » vous aurez un script qui ne se terminera pas et donc GNOME ne se chargera pas. Le nom de ce fichier est crucial ! Le nom doit commencer par deux chiffres, pour spécifier son ordre de lancement. Le reste du nom n'est vraiment pas important. J'ai essayé avec 12synergy, 22Synergy, 32synergy et 54synergyc. Toutefois cela ne permet pas d'utiliser Synergy à l'écran d'identification. Heureusement, il existe un moyen de l'utiliser même là pour ceux qui souhaitent se connecter avec un autre clavier. Vous allez devoir [[:tutoriel:comment_editer_un_fichier|éditer]] encore deux autres fichiers dans le dossier « /etc/X11/ » en lien avec GDM. Nous voulons que le client soit lancé quand gdm est aussi lancé, avant l'identification d'un utilisateur. [[:tutoriel:comment_editer_un_fichier|Ajoutez les lignes suivantes]] à votre **/etc/gdm/Init/Default** (ajoutez-les au sommet du fichier juste après les lignes commentées avec des « # ») : /usr/bin/killall synergyc sleep 1 /usr/bin/synergyc xxx.xxx.xxx.xxx où xxx.xxx.xxx.xxx est l'adresse IP du serveur. Pour que le client Synergy puisse être exécuté par l'utilisateur plutôt que par le root juste après que l'identification est faite, nous devons tuer le processus //synergyc// lancé par le root au même moment que GDM (ou KDM), un processus lancé par le root ne peut être tué que par lui, nous allons donc éditer le fichier ///etc/gdm/PreSession/Default// qui est le dernier script bash exécuté en root avant que l'utilisateur ne prenne la main. Modifier votre ///etc/gdm/PreSession/Default// pour qu'il soit comme ceci : #!/bin/sh # # Note that any setup should come before the sessreg command as # that must be 'exec'ed for the pid to be correct (sessreg uses the parent # pid) # # Note that output goes into the .xsession-errors file for easy debugging # PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin:$PATH:/bin:/usr/bin" gdmwhich () { COMMAND="$1" OUTPUT= IFS=: for dir in $PATH do if test -x "$dir/$COMMAND" ; then if test "x$OUTPUT" = "x" ; then OUTPUT="$dir/$COMMAND" fi fi done unset IFS echo "$OUTPUT" } # Le processus synergyc, lancé en root, se finit ici. /usr/bin/killall synergyc sleep 1 XSETROOT=`gdmwhich xsetroot` if [ "x$XSETROOT" != "x" ] ; then # Try to snarf the BackgroundColor from the config file BACKCOLOR=`grep '^BackgroundColor' /etc/gdm/gdm.conf | sed 's/^.*=\(.*\)$/\1/'` if [ "x$BACKCOLOR" = "x" ]; then BACKCOLOR="#76848F" fi "$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR" fi SESSREG=`gdmwhich sessreg` if [ "x$SESSREG" != "x" ] ; then # some output for easy debugging echo "$0: Registering your session with wtmp and utmp" echo "$0: running: $SESSREG -a -w /var/log/wtmp -u /var/run/utmp -x \"$X_SERVERS\" -h \"$REMOTE_HOST\" -l \"$DISPLAY$ exec "$SESSREG" -a -w /var/log/wtmp -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l "$DISPLAY" "$USER" # this is not reached fi # some output for easy debugging echo "$0: could not find the sessreg utility, cannot update wtmp and utmp" exit 0 Pour un serveur, la méthode reste à peu près la même : il suffit de créer simplement un fichier « 12synergy » dans le répertoire « /etc/X11/Xsession.d/ » contenant : #/bin/bash /usr/bin/killall synergys sleep 1 synergys --config /etc/synergy.conf ==== Methode 3 ==== Il y a en tout 3 scripts à ajouter : - le premier sert à démarrer synergy en tant que root lorsque le menu de login apparait - le second sert à tuer le processus de synergy en tant que root lorsqu'un utilisateur se connecte - le troisième sert à redémarrer synergy en tant qu'utilisateur, lorsqu'un utilisateur se connecte Vous trouverez plus d'informations à ce propos dans la section UNIX de la page http://synergy2.sourceforge.net/autostart.html. ===== Configuration du pare-feu ===== Si vous utilisez un pare-feu, il est nécessaire d'ouvrir le port 24800 (TCP). La règle IPTable suivante peut être utilisée : iptables -A INPUT -p tcp -i $interface --dport 24800 -j ACCEPT **$interface** est le nom de votre interface réseau (ex. : eth0). ===== Astuces ===== * Maintenant que Synergy est installé et configuré, vous pouvez copier et coller du **texte** entre les machines (PAS DES FICHIERS !! voir "rsync" pour tranférer des fichiers) . ===== Voir aussi ===== * [[QuickSynergy]], une interface graphique à Synergy * [[http://synergy-foss.org/]] : Site officiel de Synergy * [[https://launchpad.net/synergy2]] : Synergy sur Lauchpad * [[https://help.ubuntu.com/community/SynergyHowto]] : Documentation Ubuntu en anglais ---- //Contributeurs : [[:utilisateurs:Lok]] ([[https://wiki.ubuntu.com/SynergyHowto|traduction]]), [[:utilisateurs:ner0lph|Floriang]], [[:utilisateurs:mayeulk]].//