Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/itzg/go-ssh-shell

Go module that serves SSH sessions with an interactive shell
https://github.com/itzg/go-ssh-shell

golang ssh-server

Last synced: about 1 month ago
JSON representation

Go module that serves SSH sessions with an interactive shell

Awesome Lists containing this project

README

        

Go module that serves SSH sessions with an interactive shell. The interactive shell includes support for command history, which can be recalled using the up/down arrow keys.

## Adding module

```
go get -u github.com/itzg/go-ssh-shell
```

## Example

```go
package main

import (
shell "github.com/itzg/go-ssh-shell"
"log"
)

type exampleHandler struct {
s shell.Shell
}

func exampleHandlerFactory(s *shell.Shell) shell.Handler {
return &exampleHandler{}
}

func (h *exampleHandler) HandleLine(line string) error {
log.Printf("LINE from %s: %s", h.s.InstanceName(), line)
return nil
}

func (h *exampleHandler) HandleEof() error {
log.Printf("EOF from %s", h.s.InstanceName())
return nil
}

func main() {
sshServer := &shell.SshServer{
Config: &shell.Config{
Bind: ":2222",
Users: map[string]shell.User{
"user": {Password: "notsecure"},
},
},
HandlerFactory: exampleHandlerFactory,
}

log.Fatal(sshServer.ListenAndServe())
}
```