reorganize agent package

This commit is contained in:
Henry Dollman
2024-09-26 15:08:26 -04:00
parent e88e2bf3dc
commit 06b1c2200b
5 changed files with 328 additions and 294 deletions

View File

@@ -0,0 +1,33 @@
package agent
import (
"encoding/json"
"log"
sshServer "github.com/gliderlabs/ssh"
)
func (a *Agent) startServer() {
sshServer.Handle(a.handleSession)
log.Printf("Starting SSH server on %s", a.addr)
if err := sshServer.ListenAndServe(a.addr, nil, sshServer.NoPty(),
sshServer.PublicKeyAuth(func(ctx sshServer.Context, key sshServer.PublicKey) bool {
allowed, _, _, _, _ := sshServer.ParseAuthorizedKey(a.pubKey)
return sshServer.KeysEqual(key, allowed)
}),
); err != nil {
log.Fatal(err)
}
}
func (a *Agent) handleSession(s sshServer.Session) {
stats := a.gatherStats()
encoder := json.NewEncoder(s)
if err := encoder.Encode(stats); err != nil {
log.Println("Error encoding stats:", err.Error())
s.Exit(1)
return
}
s.Exit(0)
}