Skip to content

Commit 81194fc

Browse files
authored
Merge branch 'gliderlabs:master' into master
2 parents 076a8d9 + cf1ec7e commit 81194fc

File tree

5 files changed

+59
-15
lines changed

5 files changed

+59
-15
lines changed

_examples/ssh-sftpserver/sftp.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"io"
6+
"io/ioutil"
7+
"log"
8+
9+
"github.com/gliderlabs/ssh"
10+
"github.com/pkg/sftp"
11+
)
12+
13+
// SftpHandler handler for SFTP subsystem
14+
func SftpHandler(sess ssh.Session) {
15+
debugStream := ioutil.Discard
16+
serverOptions := []sftp.ServerOption{
17+
sftp.WithDebug(debugStream),
18+
}
19+
server, err := sftp.NewServer(
20+
sess,
21+
serverOptions...,
22+
)
23+
if err != nil {
24+
log.Printf("sftp server init error: %s\n", err)
25+
return
26+
}
27+
if err := server.Serve(); err == io.EOF {
28+
server.Close()
29+
fmt.Println("sftp client exited session.")
30+
} else if err != nil {
31+
fmt.Println("sftp server completed with error:", err)
32+
}
33+
}
34+
35+
func main() {
36+
ssh_server := ssh.Server{
37+
Addr: "127.0.0.1:2222",
38+
SubsystemHandlers: map[string]ssh.SubsystemHandler{
39+
"sftp": SftpHandler,
40+
},
41+
}
42+
log.Fatal(ssh_server.ListenAndServe())
43+
}

circle.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ jobs:
99
- run: go get
1010
- run: go test -v -race
1111

12-
build-go-1.12:
12+
build-go-1.13:
1313
docker:
14-
- image: golang:1.12
14+
- image: golang:1.13
1515
working_directory: /go/src/github.com/gliderlabs/ssh
1616
steps:
1717
- checkout
@@ -23,4 +23,4 @@ workflows:
2323
build:
2424
jobs:
2525
- build-go-latest
26-
- build-go-1.12
26+
- build-go-1.13

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ go 1.12
44

55
require (
66
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be
7-
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e
8-
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 // indirect
7+
golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d
8+
golang.org/x/term v0.5.0 // indirect
99
)

go.sum

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
22
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
3-
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI=
4-
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
5-
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
3+
golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d h1:3qF+Z8Hkrw9sOhrFHti9TlB1Hkac1x+DNRkv0XQiFjo=
4+
golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
5+
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
66
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
7+
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
78
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
8-
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio=
9-
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
10-
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
9+
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
10+
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1111
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
12-
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
12+
golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY=
13+
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
14+
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
1315
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

session.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package ssh
22

33
import (
44
"bytes"
5-
"context"
65
"errors"
76
"fmt"
87
"net"
@@ -60,7 +59,7 @@ type Session interface {
6059
//
6160
// The context is canceled when the client's connection closes or I/O
6261
// operation fails.
63-
Context() context.Context
62+
Context() Context
6463

6564
// Permissions returns a copy of the Permissions object that was available for
6665
// setup in the auth handlers via the Context.
@@ -159,7 +158,7 @@ func (sess *session) Permissions() Permissions {
159158
return *perms
160159
}
161160

162-
func (sess *session) Context() context.Context {
161+
func (sess *session) Context() Context {
163162
return sess.ctx
164163
}
165164

0 commit comments

Comments
 (0)