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
libavcodeclibavutillibswscale
- PipeWire
- libportal (with GTK4 support)
- OpenSSL
- OpenGL
- GLFW3
Clone the repository and build:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build buildThe 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-serverOn the client machine, generate RSA keys:
openssl genpkey -algorithm RSA -out private.pem
openssl rsa -in private.pem -pubout -out public.pemCopy the generated public.pem into the server machine under:
~/.ssrd/public.pem
Make sure the
~/.ssrdfolder exists on the server.
From your client machine:
./ssrd-client -h <server-ip-address> -i /path/to/private.pemIf
~/.ssrd/private.pemexists 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.