Automatically generate and submit TOTP codes during SSH keyboard-interactive authentication when a secret is configured for the profile. Backend: - Add TOTPSecret field to SSHConfig model - Detect TOTP/2FA prompts in keyboard-interactive handler using keyword matching (verification code, otp, authenticator, 2fa, etc.) - Generate 6-digit TOTP codes using pquerna/otp library - Retrieve TOTP secret from vault during connection (keychain or file vault) - API: SetTOTPSecret, GetTOTPCode, HasTOTPSecret, DeleteTOTPSecret Frontend: - Add TOTP/2FA section to SSH profile editor (collapsed by default) - Password-masked secret input with show/hide toggle - Save button: encrypts and stores in vault - Test button: generates a live 6-digit code (shown for 5 seconds) - Delete button: removes stored secret - Auto-detect whether secret is already saved (placeholder indicator) - CSS for TOTP input row, danger button style
47 lines
1.8 KiB
AMPL
47 lines
1.8 KiB
AMPL
module github.com/copilot-ssh-client/app
|
|
|
|
go 1.23.0
|
|
|
|
require (
|
|
github.com/google/uuid v1.6.0
|
|
github.com/mattn/go-sqlite3 v1.14.22
|
|
github.com/pkg/sftp v1.13.10
|
|
github.com/wailsapp/wails/v2 v2.12.0
|
|
github.com/zalando/go-keyring v0.2.5
|
|
golang.org/x/crypto v0.41.0
|
|
golang.org/x/text v0.28.0
|
|
)
|
|
|
|
require (
|
|
git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 // indirect
|
|
github.com/alessio/shellescape v1.4.1 // indirect
|
|
github.com/bep/debounce v1.2.1 // indirect
|
|
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
|
|
github.com/danieljoos/wincred v1.2.0 // indirect
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
|
github.com/godbus/dbus/v5 v5.1.0 // indirect
|
|
github.com/gorilla/websocket v1.5.3 // indirect
|
|
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect
|
|
github.com/kr/fs v0.1.0 // indirect
|
|
github.com/labstack/echo/v4 v4.13.3 // indirect
|
|
github.com/labstack/gommon v0.4.2 // indirect
|
|
github.com/leaanthony/go-ansi-parser v1.6.1 // indirect
|
|
github.com/leaanthony/gosod v1.0.4 // indirect
|
|
github.com/leaanthony/slicer v1.6.0 // indirect
|
|
github.com/leaanthony/u v1.1.1 // indirect
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/pquerna/otp v1.5.0 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/samber/lo v1.49.1 // indirect
|
|
github.com/tkrajina/go-reflector v0.5.8 // indirect
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
github.com/valyala/fasttemplate v1.2.2 // indirect
|
|
github.com/wailsapp/go-webview2 v1.0.22 // indirect
|
|
github.com/wailsapp/mimetype v1.4.1 // indirect
|
|
golang.org/x/net v0.42.0 // indirect
|
|
golang.org/x/sys v0.35.0 // indirect
|
|
)
|