ssh.go

 1package config
 2
 3import (
 4	"errors"
 5
 6	"github.com/charmbracelet/keygen"
 7)
 8
 9var (
10	// ErrNilConfig is returned when a nil config is passed to a function.
11	ErrNilConfig = errors.New("nil config")
12
13	// ErrEmptySSHKeyPath is returned when the SSH key path is empty.
14	ErrEmptySSHKeyPath = errors.New("empty SSH key path")
15)
16
17// KeyPair returns the server's SSH key pair.
18func KeyPair(cfg *Config) (*keygen.SSHKeyPair, error) {
19	if cfg == nil {
20		return nil, ErrNilConfig
21	}
22
23	if cfg.SSH.KeyPath == "" {
24		return nil, ErrEmptySSHKeyPath
25	}
26
27	return keygen.New(cfg.SSH.KeyPath, keygen.WithKeyType(keygen.Ed25519)) //nolint:wrapcheck
28}