Sshield, a secure(r) SSH agent written in Rust
Sshield, a secure(r) SSH agent written in Rust
sshield is a drop-in SSH agent replacement written in Rust which stores keys in an encrypted SQLite database instead of in ~/.ssh. I opted to use russh, which is a Rust implementation of the SSH protocol and ssh-agent for greater memory safety. It allows importing settings and keys from OpenSSH as well as creating, updating, showing and deleting keys. Whenever a program requests using the key for signing, a prompt is displayed to the user for confirmation. This way: 1. Your keys don't get leaked (unless the server process' memory is dumped, but that requires root on *nix systems) 2. Your keys don't get misused and inadvertedly sign something malicious. It is still a work in progress, but I've been able to switch with fairly minor inconveniences that are just the result of not having it globally installed. The repo will soon have a Nix overlay or package output with all the right settings enabled for daily production usage. Other planned features include using one of the Linux sandboxing APIs, like Landlock or seccomp to further lock down server process to reduce the chance of an RCE being triggered and a way to store the database on different cloud storage mediums so you can use their ACLs to further lock down access to the database and back up keys simultaneously.
Share cardActual performance
Launch Intel predictions
Analyze your own launch →Incorrect prediction on native model
Similar products
SeKey: An SSH Agent for OS X, Using Secure Enclave and TouchID, in Rust
Rux, a hobbyist microkernel written in Rust
AVR-VM – VM with JIT-compiler for ATMega32 written in Rust
Catfs – Cache AnyThing Filesystem Written in Rust
Encrusted – A Zork Interpreter Written in Rust / WebAssembly
Toy C Compiler written in Rust
Eole, a Lévy-optimal lambda calculus evaluator written in Rust
Published Thanks-Dependencies written in Rust
Bytebeat written in Rust (bytebeat-rs)
Mixed Boolean Arithmetic Expression Obfuscator Written in Rust