diff --git a/cmd/info.go b/cmd/info.go index 4c02a6f..6ee1db3 100644 --- a/cmd/info.go +++ b/cmd/info.go @@ -63,6 +63,11 @@ func (i info) Run(context wisski_distillery.Context) error { context.Printf("Last Update: %v\n", info.LastUpdate.String()) context.Printf("Last Cron: %v\n", info.LastCron.String()) + context.Printf("SSH Keys: (count %d)\n", len(info.SSHKeys)) + for _, key := range info.SSHKeys { + context.Printf("- %s\n", key) + } + context.Printf("Skip Prefixes: %v\n", info.NoPrefixes) context.Printf("Prefixes: (count %d)\n", len(info.Prefixes)) for _, prefix := range info.Prefixes { diff --git a/internal/dis/component/control/info/html/instance.html b/internal/dis/component/control/info/html/instance.html index a97eef0..71598fd 100644 --- a/internal/dis/component/control/info/html/instance.html +++ b/internal/dis/component/control/info/html/instance.html @@ -265,6 +265,21 @@ +
+ {{ . }}
+ |
+
diff --git a/internal/wisski/ingredient/barrel/ssh/ssh.go b/internal/wisski/ingredient/barrel/ssh/ssh.go index bc2b2f8..36c99a7 100644 --- a/internal/wisski/ingredient/barrel/ssh/ssh.go +++ b/internal/wisski/ingredient/barrel/ssh/ssh.go @@ -8,6 +8,7 @@ import ( "github.com/FAU-CDI/wisski-distillery/pkg/environment" "github.com/FAU-CDI/wisski-distillery/pkg/sshx" "github.com/gliderlabs/ssh" + gossh "golang.org/x/crypto/ssh" ) type SSH struct { @@ -30,3 +31,20 @@ func (ssh *SSH) Keys() ([]ssh.PublicKey, error) { } return sshx.ParseAllKeys(bytes), nil } + +func (sshx *SSH) Fetch(flags ingredient.FetchFlags, info *ingredient.Information) error { + if flags.Quick { + return nil + } + + keys, err := sshx.Keys() + if err != nil { + return err + } + + info.SSHKeys = make([]string, len(keys)) + for i, key := range keys { + info.SSHKeys[i] = string(gossh.MarshalAuthorizedKey(key)) + } + return nil +} diff --git a/internal/wisski/ingredient/fetcher.go b/internal/wisski/ingredient/fetcher.go index 67166b7..18d0440 100644 --- a/internal/wisski/ingredient/fetcher.go +++ b/internal/wisski/ingredient/fetcher.go @@ -41,6 +41,9 @@ type Information struct { // List of backups made Snapshots []models.Export + // List of SSH Keys + SSHKeys []string + // WissKI content information NoPrefixes bool // TODO: Move this into the database Prefixes []string // list of prefixes