mirror of
https://github.com/fankes/beszel.git
synced 2025-10-20 10:19:27 +08:00
reorganize agent package
This commit is contained in:
33
beszel/internal/agent/server.go
Normal file
33
beszel/internal/agent/server.go
Normal 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)
|
||||
}
|
Reference in New Issue
Block a user