Fix SSH public key format: use ssh.MarshalAuthorizedKey
Bug: raw ed25519.PublicKey bytes were stored directly instead of OpenSSH authorized-key format (ssh-ed25519 AAAA... label). Fixes: - internal/sshmanager/fingerprint.go: GenerateKeyPair now uses ssh.NewPublicKey + ssh.MarshalAuthorizedKey - internal/sshmanager/keys.go: EnsureServerKey uses same fix; also regenerates .pub file from private key if stored value is corrupt - internal/sshmanager/fingerprint.go: add MarshalED25519PublicKey, PublicKeyFromPrivateKeyFile, RegeneratePublicKeyFromPrivateKeyFile - internal/models/sshkey.go: add UpdatePublicKey - internal/api/handlers_sshkeys.go: List+Get recover existing DB records with corrupt public keys by regenerating from private key file and updating the DB Also adds golang.org/x/crypto/ssh dependency via go mod tidy.
This commit is contained in:
@@ -2,19 +2,22 @@ module github.com/syncserver
|
||||
|
||||
go 1.25.0
|
||||
|
||||
require (
|
||||
github.com/go-chi/chi/v5 v5.1.0
|
||||
github.com/golang-jwt/jwt/v5 v5.2.1
|
||||
golang.org/x/crypto v0.31.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
modernc.org/sqlite v1.53.0
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/go-chi/chi/v5 v5.1.0 // indirect
|
||||
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/ncruces/go-strftime v1.0.0 // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||
golang.org/x/crypto v0.31.0 // indirect
|
||||
golang.org/x/sys v0.44.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
modernc.org/libc v1.73.4 // indirect
|
||||
modernc.org/mathutil v1.7.1 // indirect
|
||||
modernc.org/memory v1.11.0 // indirect
|
||||
modernc.org/sqlite v1.53.0 // indirect
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user