Advertisement
Guest User

Untitled

a guest
Dec 4th, 2018
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "github.com/gliderlabs/ssh"
  5. "io"
  6. "log"
  7. "fmt"
  8. "os/exec"
  9. //"os"
  10. "bytes"
  11. "golang.org/x/crypto/ssh/terminal"
  12. )
  13. func checkPass(ctx ssh.Context, password string) bool{
  14. if ctx.User() == "alex" {
  15. if password == "177" {
  16. return true
  17. }
  18. return false
  19. }
  20. return false
  21. }
  22. func main() {
  23.  
  24. ssh.Handle(func(s ssh.Session) {
  25. fmt.Println("connected")
  26. user := s.User()
  27. fmt.Println(user)
  28. fmt.Println(s.Environ())
  29. fmt.Println(s.Command())
  30. fmt.Println(s.LocalAddr())
  31. fmt.Println(s.RemoteAddr())
  32. io.WriteString(s, "Hello "+user+"\n")
  33.  
  34. /*var out bytes.Buffer
  35. cmd := exec.Command("pwd")
  36. cmd.Path=s.RemoteAddr().String()
  37. cmd.Stdout = &out
  38. cmd.Stdout = os.Stdout
  39. cmd.Stdin = os.Stdin
  40. cmd.Stderr = os.Stderr
  41. cmd.Output()
  42. //os.Stdout.
  43. fmt.Printf(out.String() + "Y")
  44. //s.
  45. io.WriteString(s, out.String())*/
  46. term := terminal.NewTerminal(s, "> ")
  47. for {
  48. line, err := term.ReadLine()
  49. if err != nil {
  50. break
  51. }
  52. var out bytes.Buffer
  53. cmd := exec.Command(line)
  54. cmd.Stdout = &out
  55. cmd.Run()
  56. term.Write(out.Bytes())
  57. /*response := term.(line)
  58. log.Println(line)
  59. if response != "" {
  60. term.Write(append([]byte(response), '\n'))
  61. }*/
  62. }
  63. log.Println("terminal closed")
  64.  
  65.  
  66. })
  67.  
  68.  
  69.  
  70. log.Println("starting ssh server on port: 443")
  71. log.Fatal(ssh.ListenAndServe(":443", nil, ssh.PasswordAuth(checkPass)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement