Commit ce97e4e6 authored by ibuler's avatar ibuler

[Update] commit

parent 2caf26b3
...@@ -28,7 +28,7 @@ func checkAuth(ctx ssh.Context, password, publicKey string) (ok bool) { ...@@ -28,7 +28,7 @@ func checkAuth(ctx ssh.Context, password, publicKey string) (ok bool) {
ctx.SetValue(cctx.ContextKeyUser, user) ctx.SetValue(cctx.ContextKeyUser, user)
} }
logger.Infof("%s %s for %s from %s", action, authMethod, username, remoteAddr) logger.Infof("%s %s for %s from %s", action, authMethod, username, remoteAddr)
return false return ok
} }
func CheckUserPassword(ctx ssh.Context, password string) bool { func CheckUserPassword(ctx ssh.Context, password string) bool {
......
...@@ -31,10 +31,12 @@ type Context interface { ...@@ -31,10 +31,12 @@ type Context interface {
SetValue(key, value interface{}) SetValue(key, value interface{})
} }
// Context coco内部使用的Context
type CocoContext struct { type CocoContext struct {
context.Context context.Context
} }
// User 返回当前连接的用户model
func (ctx *CocoContext) User() *sdk.User { func (ctx *CocoContext) User() *sdk.User {
return ctx.Value(ContextKeyUser).(*sdk.User) return ctx.Value(ContextKeyUser).(*sdk.User)
} }
...@@ -62,7 +64,6 @@ func (ctx *CocoContext) SetValue(key, value interface{}) { ...@@ -62,7 +64,6 @@ func (ctx *CocoContext) SetValue(key, value interface{}) {
func applySessionMetadata(ctx *CocoContext, sess ssh.Session) { func applySessionMetadata(ctx *CocoContext, sess ssh.Session) {
ctx.SetValue(ContextKeySSHSession, &sess) ctx.SetValue(ContextKeySSHSession, &sess)
ctx.SetValue(ContextKeySSHCtx, sess.Context()) ctx.SetValue(ContextKeySSHCtx, sess.Context())
//ctx.SetValue(ContextKeyUser, &sdk.User{Username: sess.User()})
ctx.SetValue(ContextKeyLocalAddr, sess.LocalAddr()) ctx.SetValue(ContextKeyLocalAddr, sess.LocalAddr())
} }
......
package transport package proxy
import "context" import "context"
......
package transport package proxy
import ( import (
"cocogo/pkg/parser" "cocogo/pkg/parser"
......
package proxy package proxy
import ( import (
"cocogo/pkg/transport"
"cocogo/pkg/userhome" "cocogo/pkg/userhome"
"context" "context"
"sync" "sync"
"github.com/sirupsen/logrus" "cocogo/pkg/logger"
) )
var log = logrus.New() type Switch struct {
}
var Manager = &manager{ var Manager = &manager{
container: new(sync.Map), container: new(sync.Map),
...@@ -63,7 +63,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent ...@@ -63,7 +63,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent
select { select {
case buf1, ok := <-userSendRequestStream: case buf1, ok := <-userSendRequestStream:
if !ok { if !ok {
log.Warn("userSendRequestStream close") logger.Warn("userSendRequestStream close")
userSendRequestStream = nil userSendRequestStream = nil
close(nodeRequestChan) close(nodeRequestChan)
continue continue
...@@ -71,7 +71,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent ...@@ -71,7 +71,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent
nodeRequestChan <- buf1 nodeRequestChan <- buf1
case buf2, ok := <-nodeSendResponseStream: case buf2, ok := <-nodeSendResponseStream:
if !ok { if !ok {
log.Warn("nodeSendResponseStream close") logger.Warn("nodeSendResponseStream close")
nodeSendResponseStream = nil nodeSendResponseStream = nil
close(userReceiveStream) close(userReceiveStream)
cancelFunc() cancelFunc()
...@@ -79,11 +79,11 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent ...@@ -79,11 +79,11 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent
} }
userReceiveStream <- buf2 userReceiveStream <- buf2
case <-ctx.Done(): case <-ctx.Done():
log.Info("proxy end by context done") logger.Info("proxy end by context done")
cancelFunc() cancelFunc()
return nil return nil
} }
} }
log.Info("proxy end") logger.Info("proxy end")
return nil return nil
} }
package transport package proxy
import ( import (
"context" "context"
......
package userhome package proxy
import ( import (
"context" "context"
......
...@@ -12,6 +12,8 @@ import ( ...@@ -12,6 +12,8 @@ import (
"cocogo/pkg/sshd/handler" "cocogo/pkg/sshd/handler"
) )
const version = "coco-v1.4"
var ( var (
conf = config.Conf conf = config.Conf
) )
...@@ -30,7 +32,7 @@ func StartServer() { ...@@ -30,7 +32,7 @@ func StartServer() {
PublicKeyHandler: auth.CheckUserPublicKey, PublicKeyHandler: auth.CheckUserPublicKey,
KeyboardInteractiveHandler: auth.CheckMFA, KeyboardInteractiveHandler: auth.CheckMFA,
HostSigners: []ssh.Signer{signer}, HostSigners: []ssh.Signer{signer},
Version: "coco-v1.4", Version: version,
Handler: handler.SessionHandler, Handler: handler.SessionHandler,
} }
logger.Fatal(srv.ListenAndServe()) logger.Fatal(srv.ListenAndServe())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment