@@ -111,10 +111,19 @@ func NewServer(ctx context.Context, logger slog.Logger, prometheusRegistry *prom
111
111
"direct-streamlocal@openssh.com" : directStreamLocalHandler ,
112
112
"session" : ssh .DefaultSessionHandler ,
113
113
},
114
- ConnectionFailedCallback : func (_ net.Conn , err error ) {
115
- s .logger .Warn (ctx , "ssh connection failed" , slog .Error (err ))
114
+ ConnectionFailedCallback : func (conn net.Conn , err error ) {
115
+ s .logger .Warn (ctx , "ssh connection failed" ,
116
+ slog .F ("remote_addr" , conn .RemoteAddr ()),
117
+ slog .F ("local_addr" , conn .LocalAddr ()),
118
+ slog .Error (err ))
116
119
metrics .failedConnectionsTotal .Add (1 )
117
120
},
121
+ ConnectionCompleteCallback : func (conn * gossh.ServerConn , err error ) {
122
+ s .logger .Info (ctx , "ssh connection complete" ,
123
+ slog .F ("remote_addr" , conn .RemoteAddr ()),
124
+ slog .F ("local_addr" , conn .LocalAddr ()),
125
+ slog .Error (err ))
126
+ },
118
127
Handler : s .sessionHandler ,
119
128
HostSigners : []ssh.Signer {randomSigner },
120
129
LocalPortForwardingCallback : func (ctx ssh.Context , destinationHost string , destinationPort uint32 ) bool {
@@ -603,10 +612,7 @@ func (s *Server) handleConn(l net.Listener, c net.Conn) {
603
612
}
604
613
defer s .trackConn (l , c , false )
605
614
logger .Info (context .Background (), "started serving connection" )
606
- defer func () {
607
- logger .Info (context .Background (), "stopped serving connection" )
608
- }()
609
-
615
+ // note: srv.ConnectionCompleteCallback logs completion of the connection
610
616
s .srv .HandleConn (c )
611
617
}
612
618
0 commit comments