Add Decky SSH to Plugin Store - #1104
Conversation
Adds decky-ssh as a submodule: toggle sshd on/off and manage the SSH password from the Quick Access Menu, with PAM-verified current-password checking before allowing a password change.
Issues FoundNo issues with your PR description were found. Next Steps
Thank you for your contribution! If you need any help, please reach out on our Discord server. ❤️ |
Testing report — Decky SSHHardware: Steam Machine (not a Deck), SteamOS Stable, Decky Loader 3.2.6. Works
Issues1. A newline in input=f"{decky.DECKY_USER}:{new_password}\n".encode()
2. 3. 4. 5. Naming and version drift. 6. Minor UX. Disabling SSH doesn't warn that it also disables the service at boot. On a setup where SSH is the only remote way in, one tap from the couch means no remote access until someone touches the machine locally. The toggle description is a natural place to say so. Not tested
|
Add Decky SSH to Plugin Store
Decky SSH lets you enable/disable the
sshdservice and manage the SSH login password directly from the Quick Access Menu, without leaving Gaming Mode.Features:
rootplugin flag, no polkit rule needed)deckaccount's SSH password from the QAM, masked inputlibpamthroughctypes). the plugin can't be used to silently reset SSH access on an unlocked Deck without already knowing the current passwordssh deck@<ip>command once SSH is activeThere's already an open PR for a similar plugin, Easy SSH (#1034), which also toggles SSH from the QAM and shows the local IP. The functionality that doesn't overlap is the in-QAM password management with current-password verification. Easy SSH's description doesn't mention handling the SSH password at all. I'm flagging this myself rather than waiting for a reviewer to point it out, and I'm open to this being redirected toward contributing that feature to Easy SSH instead, if that's preferred over having two similar plugins. It also looks like it was never merged so it is not present on the public store.
Task Checklist
Developer
On the AI point, to be fully transparent since I know this is checked closely: I'm not a programmer. Claude (Anthropic) wrote essentially all of the actual code
main.pyand the React/TSX frontend. My role was directing what it should do, testing every change on my real Steam Deck over SSH, reading logs and pasting real error output back so bugs could actually get fixed (including two security issues I raised myself: that changing the SSH password should require the current one, and that an early implementation of that check turned out to always report "unable to verify" and needed a different approach entirely), and deciding on the UX. I did not write the code myself and can't honestly check this box. I understand this has been sufficient grounds to close every other new-plugin PR with a similar disclosure, and I'd rather be upfront about it than have it come up after the fact.Plugin
I attempted to also verify this on the Beta update channel, but after switching, Decky Loader's own QAM entry stopped appearing entirely (the backend service stayed running and healthy, just the UI injection point). This matches an existing, unrelated upstream issue (decky-loader#888) where a recent Steam Client update breaks Decky's QAM injection independent of any specific plugin. I wasn't able to verify decky-ssh specifically on Beta as a result, so I'm only checking the Stable box, which is what I've actually confirmed.
Backend
Community
Testing