Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
K
koko
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
koko
Commits
ce97e4e6
Commit
ce97e4e6
authored
Apr 24, 2019
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Update] commit
parent
2caf26b3
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
17 additions
and
14 deletions
+17
-14
server.go
pkg/auth/server.go
+1
-1
context.go
pkg/cctx/context.go
+2
-1
conn.go
pkg/proxy/conn.go
+1
-1
sshconn.go
pkg/proxy/sshconn.go
+1
-1
switch.go
pkg/proxy/switch.go
+7
-7
transport.go
pkg/proxy/transport.go
+1
-1
userhome.go
pkg/proxy/userhome.go
+1
-1
server.go
pkg/sshd/server.go
+3
-1
No files found.
pkg/auth/server.go
View file @
ce97e4e6
...
...
@@ -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
{
...
...
pkg/cctx/context.go
View file @
ce97e4e6
...
...
@@ -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
())
}
...
...
pkg/
transport
/conn.go
→
pkg/
proxy
/conn.go
View file @
ce97e4e6
package
transport
package
proxy
import
"context"
...
...
pkg/
transport
/sshconn.go
→
pkg/
proxy
/sshconn.go
View file @
ce97e4e6
package
transport
package
proxy
import
(
"cocogo/pkg/parser"
...
...
pkg/proxy/switch.go
View file @
ce97e4e6
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"
)
log
ger
.
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"
)
log
ger
.
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"
)
log
ger
.
Info
(
"proxy end by context done"
)
cancelFunc
()
return
nil
}
}
log
.
Info
(
"proxy end"
)
log
ger
.
Info
(
"proxy end"
)
return
nil
}
pkg/
transport
/transport.go
→
pkg/
proxy
/transport.go
View file @
ce97e4e6
package
transport
package
proxy
import
(
"context"
...
...
pkg/
userhome
/userhome.go
→
pkg/
proxy
/userhome.go
View file @
ce97e4e6
package
userhome
package
proxy
import
(
"context"
...
...
pkg/sshd/server.go
View file @
ce97e4e6
...
...
@@ -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
())
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment