Skip to content

Add passphrase decryption and TCP control server migration#97

Merged
jonchun merged 2 commits intomainfrom
feat/passphrase-and-tcp-control
Mar 3, 2026
Merged

Add passphrase decryption and TCP control server migration#97
jonchun merged 2 commits intomainfrom
feat/passphrase-and-tcp-control

Conversation

@jonchun
Copy link
Copy Markdown
Collaborator

@jonchun jonchun commented Mar 3, 2026

Summary

  • Native passphrase decryption & password auth: Add support for decrypting passphrase-protected SSH keys natively and handling password-based SSH authentication
  • TCP control server migration: Migrate the control server from Unix socket to TCP localhost for broader compatibility

Test plan

  • Verify passphrase-protected key decryption works correctly
  • Verify password auth flow functions as expected
  • Confirm control server binds to TCP localhost and responds to requests

🤖 Generated with Claude Code

jonchun and others added 2 commits March 1, 2026 16:44
Replace Unix domain socket with TCP 127.0.0.1:0 (ephemeral port).
The resolved host:port is written to an .addr file so clients can
discover it. This unblocks future Windows support where Unix sockets
are unavailable.

- control.go: Listen on TCP, write addr to file, clean up on shutdown
- shellguard.go: Rename env var SHELLGUARD_CONTROL_SOCKET → SHELLGUARD_CONTROL_ADDR

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Wire Password and Passphrase fields through the full SSH connect chain
(ConnectionParams → ConnectInput → ConnectParams → adapter). Handle
passphrase-protected keys natively via ParsePrivateKeyWithPassphrase()
instead of suggesting ssh-add. Append gossh.Password() auth method when
a password is provided. Default key loading also attempts passphrase
decryption when available.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@jonchun jonchun merged commit d1a7215 into main Mar 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant