Skip to main content

Software KVM switch over the network with encryption (keyboard and mouse only, no video).

Project description

Kybonet - software KM switch with encryption!

Description

Share your keyboard and mouse connected to a computer over the network!

This tool allows to share your input devices with many computers in the same network (one at a time). You can switch from one computer to the next one with a configurable hotkey (by default F7).

How does it work?

The host computer (the one with the keyboard/mouse) runs the server, and every computer where you want to use that keyboard run the client.

To keep things easy, there is no point-to-point connection here, but a zmq publish/subscribe scheme. The server'll publish the keyboard events encrypted with the public key of the selected client, so only that client'll be able to decode them. When pressing the hotkey, the server'll start using the public key of the 2nd client to encrypt the events. Now only the 2nd client'll be able to decode them.

Setup the client

  • Step 0 - (optional) Create a venv.
python3 -m venv venv
. venv/bin/activate
  • Step 1 - Install the required packages.
pip install kybonet
  • Step 2 - Generate public/private keys pair (one in each client).
# generate
kybonet-keygen
# Copy public key to the server
scp <public-key.pub> <user>@<server>:<path>/
  • Step 3 - Run.
kybonet-client <server-ip> -p <port> -i <private-key>

Setup the server

  • Step 0 - (optional) Create a venv.
python3 -m venv venv
. venv/bin/activate
  • Step 1 - Install the required packages.
pip install kybonet
  • Step 2 - List the available devices and identify the ones you want to be shared:
kybonet-devices

Note: It's likely that you need to add your user to the input group in order to have access to the input devies. Check that with ls -las /dev/input and add it with usermod -aG <group> <user>. You'll have to login again so the change take effect.

  • Step 3 - Open the default config file or get a copy of it (~/.local/kybonet/config.yml). Add as many clients as you want, with at least a name and the path to their public key (the hotkey field is optional). In case you don't like the default values, you can also assign the hotkeys you want to switch between clients and to exit the program.

  • Step 4 - Run.

kybonet-server -p <PORT> -c <config-file>

Note: If the config-file is ommited, it'll be loaded from ~/.local/kybonet/config.yml. If you want a fresh start, remove it and when you run kybonet-server a new one'll be created.

Info

Please report any issues here.

Start typing, and have fun!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kybonet-0.0.8.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

kybonet-0.0.8-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file kybonet-0.0.8.tar.gz.

File metadata

  • Download URL: kybonet-0.0.8.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.2 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for kybonet-0.0.8.tar.gz
Algorithm Hash digest
SHA256 28756fefcaaa76888faf150f70501048202bdf2ab7424b3f8b8ebee423e4bace
MD5 8c72b5d1644886faee5974d4fc3c8909
BLAKE2b-256 b1d2b060f70f0b507b85b929038592956b9c30a7b10ee8f564a6b4efb1ddebb2

See more details on using hashes here.

File details

Details for the file kybonet-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: kybonet-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.2 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for kybonet-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 be7b2a172897eb6dda0692158a6899aa4812614ebb0fa7e677cd70c956fad0a5
MD5 2b3ca8d3c8107f461b06d5379f562cb0
BLAKE2b-256 993afaa0b91136c977fa46d983af00f178171c5d9f9abd9f95c56840e3c1ec35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page