SSRD (Secure Socket Remote Desktop) is a lightweight remote desktop solution with end-to-end encrypted communication over sockets.
This project is still in development but already functional enough to be tested.
- Secure socket-based communication (RSA key exchange).
- Client/Server architecture.
- Easy setup with CMake.
- Minimal dependencies.
SSRD depends on the following libraries. The same versions of FFmpeg libraries must be installed on both the client and server, since shared libraries are used.
- FFmpeg
libavcodec
libavutil
libswscale
- PipeWire
- libportal (with GTK4 support)
- OpenSSL
- OpenGL
- GLFW3
Clone the repository and build:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
The compiled binaries will be available in the build/
folder:
ssrd-server
– run this on the target machine (the one being shared).ssrd-client
– run this on the local machine (the one viewing).
On the target machine:
./ssrd-server
On the client machine, generate RSA keys:
openssl genpkey -algorithm RSA -out private.pem
openssl rsa -in private.pem -pubout -out public.pem
Copy the generated public.pem into the server machine under:
~/.ssrd/public.pem
Make sure the
~/.ssrd
folder exists on the server.
From your client machine:
./ssrd-client -h <server-ip-address> -i /path/to/private.pem
If
~/.ssrd/private.pem
exists on the client, you don't need to pass-i /path/to/private.pem
ssrd/
├── CMakeLists.txt
├── src/
│ ├── client/ # Client-side code
│ ├── server/ # Server-side code
│ └── common/ # Shared utilities
└── README.md
- This project is not production-ready yet.
- Error handling and additional security layers are still being improved.
- The rsa key exchange is primitive, need to improve it among other things.
- Contributions and feedback are welcome.
MIT License – free to use, modify, and distribute.