Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

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.

La manière la plus simple est d'installer le paquet synergy.

Installer en 1 clic1)

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 site de Synergy.

Il existe une interface graphique, nommée quick synergy, pour la configuration de synergy. Cherchez quicksynergy dans la logithèque

L'installation proposée dans la section précédente permet d'installer 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 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

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 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. :-)

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 <ip address of server>

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.

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 <PASSWORD HASH> (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, ajouter une seule fois l'appel à Synergy

# Appel à Synergy
/usr/bin/synergyc <nom du serveur Synergy ou son IP>

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 é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. 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 :

  1. le premier sert à démarrer synergy en tant que root lorsque le menu de login apparait
  2. le second sert à tuer le processus de synergy en tant que root lorsqu'un utilisateur se connecte
  3. 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.

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).

  • 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) .

Contributeurs : Lok (traduction), Floriang, mayeulk.


1)
pour Ubuntu ≥ 7.10 seulement
  • synergy.txt
  • Dernière modification: Le 11/09/2022, 14:21
  • par moths-art