Advertisement
Guest User

Untitled

a guest
Oct 10th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "bufio"
  5. "fmt"
  6. "os"
  7. "strings"
  8. "syscall"
  9. "io"
  10. "golang.org/x/crypto/ssh"
  11. "golang.org/x/crypto/ssh/terminal"
  12. )
  13.  
  14. func main() {
  15.  
  16. username, password := credentials()
  17.  
  18. sshConfig := &ssh.ClientConfig{
  19. User: username,
  20. Auth: []ssh.AuthMethod{
  21. ssh.Password(password)},
  22. }
  23. sshConfig.SetDefaults()
  24.  
  25. client, err := ssh.Dial("tcp", "lgserv3.stud.cs.uit.no:22", sshConfig)
  26.  
  27. session, err := client.NewSession()
  28.  
  29. stdin, err := session.StdinPipe()
  30. if err != nil {
  31. panic(err)
  32. }
  33. go io.Copy(stdin, os.Stdin)
  34.  
  35. stdout, err := session.StdoutPipe()
  36. if err != nil {
  37. panic(err)
  38. }
  39. go io.Copy(os.Stdout, stdout)
  40.  
  41. stderr, err := session.StderrPipe()
  42. if err != nil {
  43. panic(err)
  44. }
  45. go io.Copy(os.Stderr, stderr)
  46.  
  47. err = session.Run("ls -l $LC_USR_DIR")
  48.  
  49. }
  50.  
  51.  
  52.  
  53. func credentials() (string, string) {
  54. reader := bufio.NewReader(os.Stdin)
  55.  
  56. fmt.Print("Enter Username: ")
  57. username, _ := reader.ReadString('\n')
  58.  
  59. fmt.Print("Enter Password: ")
  60. bytePassword, _ := terminal.ReadPassword(int(syscall.Stdin))
  61.  
  62. password := string(bytePassword)
  63.  
  64. return strings.TrimSpace(username), strings.TrimSpace(password)
  65. }
  66.  
  67. /*
  68. func PublicKeyFile(file string) ssh.AuthMethod {
  69. buffer, err := ioutil.ReadFile(file)
  70. if err != nil {
  71. return nil
  72. }
  73.  
  74. key, err := ssh.ParsePrivateKey(buffer)
  75. if err != nil {
  76. return nil
  77. }
  78. return ssh.PublicKeys(key)
  79. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement