diff --git a/pkg/auth/server.go b/pkg/auth/server.go index 2c7b72d605b4776d8d1f54f8ff479ee45573e8d0..414358782790ce820199f813a4378c0d2260e6ef 100644 --- a/pkg/auth/server.go +++ b/pkg/auth/server.go @@ -28,7 +28,7 @@ func checkAuth(ctx ssh.Context, password, publicKey string) (ok bool) { ctx.SetValue(cctx.ContextKeyUser, user) } logger.Infof("%s %s for %s from %s", action, authMethod, username, remoteAddr) - return false + return ok } func CheckUserPassword(ctx ssh.Context, password string) bool { diff --git a/pkg/cctx/context.go b/pkg/cctx/context.go index a27114b9f8fe0d53f0efe2f698416d64c0401841..397fe924e5f318a5fafe39b585f6a450c108ef68 100644 --- a/pkg/cctx/context.go +++ b/pkg/cctx/context.go @@ -31,10 +31,12 @@ type Context interface { SetValue(key, value interface{}) } +// Context coco内部使用的Context type CocoContext struct { context.Context } +// User 返回当å‰è¿žæŽ¥çš„用户model func (ctx *CocoContext) User() *sdk.User { return ctx.Value(ContextKeyUser).(*sdk.User) } @@ -62,7 +64,6 @@ func (ctx *CocoContext) SetValue(key, value interface{}) { func applySessionMetadata(ctx *CocoContext, sess ssh.Session) { ctx.SetValue(ContextKeySSHSession, &sess) ctx.SetValue(ContextKeySSHCtx, sess.Context()) - //ctx.SetValue(ContextKeyUser, &sdk.User{Username: sess.User()}) ctx.SetValue(ContextKeyLocalAddr, sess.LocalAddr()) } diff --git a/pkg/transport/conn.go b/pkg/proxy/conn.go similarity index 89% rename from pkg/transport/conn.go rename to pkg/proxy/conn.go index 6eef660df1adfa070d2d21e22082635a7804965a..259a924b722984d0f91a6e48fed19c9fdb797f37 100644 --- a/pkg/transport/conn.go +++ b/pkg/proxy/conn.go @@ -1,4 +1,4 @@ -package transport +package proxy import "context" diff --git a/pkg/transport/sshconn.go b/pkg/proxy/sshconn.go similarity index 99% rename from pkg/transport/sshconn.go rename to pkg/proxy/sshconn.go index d85faac0b535b5d2dadecc37faede1182ef65e94..d7694360f5a39ef07b38825b906cd8cbeeab13f4 100644 --- a/pkg/transport/sshconn.go +++ b/pkg/proxy/sshconn.go @@ -1,4 +1,4 @@ -package transport +package proxy import ( "cocogo/pkg/parser" diff --git a/pkg/proxy/switch.go b/pkg/proxy/switch.go index 7db13364b9105d66e577ea2ac6210373cad43d6a..859f9bfa31fc521e5b60715787340b25e7a58f0c 100644 --- a/pkg/proxy/switch.go +++ b/pkg/proxy/switch.go @@ -1,15 +1,15 @@ package proxy import ( - "cocogo/pkg/transport" "cocogo/pkg/userhome" "context" "sync" - "github.com/sirupsen/logrus" + "cocogo/pkg/logger" ) -var log = logrus.New() +type Switch struct { +} var Manager = &manager{ container: new(sync.Map), @@ -63,7 +63,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent select { case buf1, ok := <-userSendRequestStream: if !ok { - log.Warn("userSendRequestStream close") + logger.Warn("userSendRequestStream close") userSendRequestStream = nil close(nodeRequestChan) continue @@ -71,7 +71,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent nodeRequestChan <- buf1 case buf2, ok := <-nodeSendResponseStream: if !ok { - log.Warn("nodeSendResponseStream close") + logger.Warn("nodeSendResponseStream close") nodeSendResponseStream = nil close(userReceiveStream) cancelFunc() @@ -79,11 +79,11 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent } userReceiveStream <- buf2 case <-ctx.Done(): - log.Info("proxy end by context done") + logger.Info("proxy end by context done") cancelFunc() return nil } } - log.Info("proxy end") + logger.Info("proxy end") return nil } diff --git a/pkg/transport/transport.go b/pkg/proxy/transport.go similarity index 97% rename from pkg/transport/transport.go rename to pkg/proxy/transport.go index b6a917ceb2929141bc5e9c64631c970e7af8b5eb..ca3264d039c121f3b8783cd59c56e2fd329169d9 100644 --- a/pkg/transport/transport.go +++ b/pkg/proxy/transport.go @@ -1,4 +1,4 @@ -package transport +package proxy import ( "context" diff --git a/pkg/userhome/userhome.go b/pkg/proxy/userhome.go similarity index 99% rename from pkg/userhome/userhome.go rename to pkg/proxy/userhome.go index 9ca0406bf60671c6592ae048ef1fbdd2aa23a959..6fe5e513725f1d63830a3b5d65816b0fc996ebf2 100644 --- a/pkg/userhome/userhome.go +++ b/pkg/proxy/userhome.go @@ -1,4 +1,4 @@ -package userhome +package proxy import ( "context" diff --git a/pkg/sshd/server.go b/pkg/sshd/server.go index 4bc6c33a463daf581e72eeac39fb05a846355d62..4b4b343383e22974e39b4112c1d403fea2f601c4 100644 --- a/pkg/sshd/server.go +++ b/pkg/sshd/server.go @@ -12,6 +12,8 @@ import ( "cocogo/pkg/sshd/handler" ) +const version = "coco-v1.4" + var ( conf = config.Conf ) @@ -30,7 +32,7 @@ func StartServer() { PublicKeyHandler: auth.CheckUserPublicKey, KeyboardInteractiveHandler: auth.CheckMFA, HostSigners: []ssh.Signer{signer}, - Version: "coco-v1.4", + Version: version, Handler: handler.SessionHandler, } logger.Fatal(srv.ListenAndServe())