sshpoke/internal/server/driver/ssh/sshconfig.go

33 lines
632 B
Go

package ssh
import (
"bytes"
"os"
"strings"
"github.com/Neur0toxine/sshpoke/internal/server/driver/ssh/types"
"github.com/kevinburke/ssh_config"
)
type hostConfig struct {
cfg *ssh_config.Config
host string
}
func (c *hostConfig) Get(key string) (string, error) {
val, err := c.cfg.Get(c.host, key)
return strings.TrimSpace(val), err
}
func parseSSHConfig(filePath types.SmartPath) (*ssh_config.Config, error) {
fileName, err := filePath.Resolve(false)
if err != nil {
return nil, err
}
file, err := os.ReadFile(fileName)
if err != nil {
return nil, err
}
return ssh_config.Decode(bytes.NewReader(file))
}