
AUETH
Modern SIWE-style auth for systems older than Ethereum using PAM
Demo
About
The core product of aueth is the SIWE-style authentication correlating a Unix system user to an Ethereum address (1:1) with PAM (Pluggable Authentication Modules). A system administrator of a corporation or similar can configure aueth with [directory] provider = "ens" [directory.ens] root = "acmecorp.eth" chain = "sepolia" rpc_url = "https://your-sepolia-rpc.example" then give their employees subnames under acmecorp.eth (if they don't already), and then simply set a few text records (such as uid and gid, and Unix username if it shouldn't be the ens name). Then the system administrator hooks up the aueth PAM module. Now any user can instead of using their passwords for sudo or ssh or whatever simply connect their wallet to their terminal and sign a payload.
How it's made
I wrote a Rust daemon and user program that uses the openlv sdk to do terminal wallet connection, then I used ENSv2 as the directory with simple RPC calls. The business logic is just hooking up two primitives. Reason I chose to not use SIWE was because I didn't want the UX of the PAM module directing you to a webpage in order to sign (like prior art). Instead I simply show the openlv connection url and have the terminal act as the dApp itself.