Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "github.com/gliderlabs/ssh"
  6. "golang.org/x/crypto/ssh/terminal"
  7. "io"
  8. "log"
  9. "os/exec"
  10. )
  11.  
  12. func main() {
  13. ssh.Handle(func(s ssh.Session) {
  14.  
  15. io.WriteString(s, fmt.Sprintf("Hello %s\n", s.User()))
  16. term := terminal.NewTerminal(s, "> ")
  17. for {
  18. line, err := term.ReadLine()
  19. if err != nil {
  20. break
  21. }
  22. if line =="dir"{
  23. out, err := exec.Command("cmd", "/C", "dir").Output()
  24. if err != nil {
  25. log.Fatal(err)
  26. }
  27. term.Write(append([]byte(out), '\n'))
  28. } else if line =="date" {
  29. out, err := exec.Command("cmd", "date").Output()
  30. if err != nil {
  31. log.Fatal(err)
  32. }
  33. term.Write(append([]byte(out), '\n'))
  34. } else {
  35. term.Write(append([]byte("unknown command"), '\n'))
  36. }
  37. log.Println(line)
  38. }
  39.  
  40. })
  41.  
  42. log.Println("starting ssh server on port 2223...")
  43. log.Fatal(ssh.ListenAndServe(":2223", nil))
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement