Linux: Partager le clavier sur le réseau

12

Comme le titre l'indique, je souhaite utiliser un clavier distant localement. Le clavier distant doit être utilisable dans un ATS et, si possible, dans le X-Server également. Existe-t-il des pilotes (modules du noyau) émulant un "faux" clavier avec transparence réseau?

timn
la source

Réponses:

16

Je l'ai découvert par moi-même.

Assurez-vous d'abord que vous avez chargé le module du noyau evdev sur les deux machines.

Sur la machine distante que vous exécutez:

$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444

Et sur le client:

$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

(Remarque: si vous utilisez netcat à partir de netcat-openbsd, par exemple dans Ubuntu ou Fedora, n'utilisez pas le '-p')

Cela fonctionne parfaitement, que je sois dans un ATS ou sur X.org. Et ça marche sans plus attendre!

Malheureusement, toutes les clés sont également tapées sur la machine distante. Existe-t-il un moyen de les désactiver temporairement pendant que nc fonctionne? J'ai pensé à quelque chose comme exécuter "cat -" sur la machine distante mais un Ctrl-C ferait bien sûr la fin.

timn
la source
2
J'ai eu plus de chance avec nc -l 4444, sans -p. Selon man nc, -pest explicitement interdit en combinaison avec -l. Sinon, c'est une solution fantastique et juste ce dont j'avais besoin :)
Magnus Hoff
1
Je vous encourage fortement à l'utiliser via une connexion sécurisée ou localement (bien que ce ne soit pas vraiment sécurisé non plus). Il y a snetcat, ('secure netcat') qui peut fonctionner si vous importez un certificat (allez, google it :-). Veuillez également accepter votre solution, cette question est toujours «ouverte».
pruzinat
ce serait mieux s'il prend en charge le copier-coller !!
Chenming Zhang
Solution incroyable! Je suis impressionné que vous ayez réussi à comprendre cela. Avez-vous trouvé une solution pour désactiver la sortie sur une machine lors de l'exécution sur l'autre?
Cestarian
7

Synergy partagera un clavier sur le réseau entre plusieurs machines. S'il ne fait pas directement ce que vous voulez, je suis sûr qu'il y a du code qui vous facilitera la configuration.

Carl Norum
la source
Synergy + est une «fourchette» de synergie qui est toujours maintenue pour les corrections de bogues. De plus, la synergie rapide est disponible dans certains dépôts de paquets Debian et fournit un wrapper GUI pour la synergie.
Josiah
3
En fait, Synergy dépend du X-Server. J'ai besoin d'une solution qui fonctionne dans un ATS. Si je savais comment émuler des touches sur un ATS, j'essaierais d'écrire moi-même une petite application. Malheureusement, je n'ai rien trouvé de précieux sur Google. Peut-être que quelqu'un peut me donner des indices?
timn
5

Jetez un œil à Synergy .

Synergy est un logiciel gratuit et open source qui vous permet de partager facilement votre souris et votre clavier entre plusieurs ordinateurs, où chaque ordinateur a son propre écran. Aucun matériel spécial n'est requis, tout ce dont vous avez besoin est un réseau local. Synergy est pris en charge sous Windows, Mac OS X et Linux. Rediriger la souris et le clavier est aussi simple que de déplacer la souris hors du bord de votre écran.

Synergie

Nick Bolton
la source
0

La suggestion ci-dessus d'utiliser nc (netcat) ne fonctionne pas pour moi.

Je peux ouvrir le flux d'entrée en utilisant cette commande:

nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

J'obtiens une autorisation refusée, même si je le fais en tant que sudo. La machine cible a une installation linux vraiment ancienne, donc peut-être que les fichiers du périphérique / dev / input étaient en lecture seule quand.

Cependant, j'ai pu résoudre ce problème en utilisant x2x, et le résultat est très convivial.

Vous devez faire "xhost +" sur la machine cible et également utiliser gdmsetup pour activer les connexions à distance (cela supprime l'indicateur -nolisten pour X la prochaine fois que gdm lance une session X).

Après cela, votre xserver est grand ouvert pour les connexions à distance, et x2x peut s'y connecter depuis la machine source (clavier)

x2x -to 192.168.1.3:0

Ce qu'il y a de bien avec x2x, c'est qu'il vous donne une petite fenêtre de contrôle sur la machine source, et les événements de clavier ne sont envoyés à la cible que lorsque cette fenêtre est focalisée. C'est une façon très pratique de le faire (je tape cette réponse depuis la machine source en ce moment, et aucune touche erronée n'atteint la machine cible, car j'ai la fenêtre de contrôle décentrée). De plus, un clic sur le centre de la fenêtre de contrôle commence également à transmettre les événements de souris, et un clic sur 2 boutons met fin à l'envoi des événements de souris. De plus, lorsque vous activez le transfert de souris avec un clic dans la fenêtre de contrôle, TOUS les événements du clavier sont envoyés à la cible et aucun à la source. Ainsi, ALT-TAB est envoyé à la cible sans défocaliser la fenêtre de contrôle sur la machine source.

J'ai des bureaux virtuels activés sur la machine source, donc je colle simplement la fenêtre de contrôle x2x sur un bureau distant et n'y vais que lorsque j'ai besoin de contrôler la machine cible.

Cette version de la solution est au niveau X, où la réponse ci-dessus est au niveau du périphérique Linux. Bien sûr, cela ne fonctionnera pas du tout si vous n'exécutez pas X sur la cible et la source.

Jason Rohrer
la source