53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"gommunicator/internal/communicator"
|
|
"gommunicator/internal/config"
|
|
"gommunicator/internal/input"
|
|
"gommunicator/internal/logger"
|
|
"gommunicator/internal/memory"
|
|
"gommunicator/internal/ssh"
|
|
"gommunicator/internal/usecase"
|
|
)
|
|
|
|
const key = `-----BEGIN OPENSSH PRIVATE KEY-----
|
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
|
QyNTUxOQAAACC2W7jqv+IrEDb6dg2vR81uoUHnpCUueBZB0ajetr13hAAAAJjLUSTky1Ek
|
|
5AAAAAtzc2gtZWQyNTUxOQAAACC2W7jqv+IrEDb6dg2vR81uoUHnpCUueBZB0ajetr13hA
|
|
AAAEA1C1fC0k8MZ5S5vjcg43y2//ikwDvRbOp6GsLLAn/ZzrZbuOq/4isQNvp2Da9HzW6h
|
|
QeekJS54FkHRqN62vXeEAAAADnlhc2hAeWFzaC1hc3VzAQIDBAUGBw==
|
|
-----END OPENSSH PRIVATE KEY-----`
|
|
|
|
func main() {
|
|
log := logger.SetupLogger("prod")
|
|
|
|
cfg := config.MustParse()
|
|
|
|
mem := memory.New()
|
|
communicator := communicator.New().WithDefaultServerClient()
|
|
uc := usecase.New(log, mem, communicator)
|
|
|
|
go input.New(uc, log).Run()
|
|
|
|
readServerPrivateKey(cfg.KeyFile)
|
|
|
|
srv, err := ssh.New(log, uc, []byte(key))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
if err := srv.Start(cfg.ServerAddr); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func readServerPrivateKey(filename string) (string, error) {
|
|
file, err := os.ReadFile(filename)
|
|
if err != nil {
|
|
return "", fmt.Errorf("failed to read private key in '%s': %w", filename, err)
|
|
}
|
|
return string(file), nil
|
|
}
|