Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "bufio"
  5. "fmt"
  6. "io"
  7. "log"
  8. "os"
  9. "golang.org/x/crypto/ssh"
  10. )
  11.  
  12.  
  13. func main() {
  14.  
  15. config := &ssh.ClientConfig{ //config for ssh-client
  16. User: "lab_42_2018",
  17. Auth: []ssh.AuthMethod{
  18. ssh.Password("DFfdffuy934"),
  19. },
  20. }
  21. config.HostKeyCallback = ssh.InsecureIgnoreHostKey() //login, parol
  22.  
  23. addr := fmt.Sprintf("%s:%d", "localhost", 2223)
  24. client, err := ssh.Dial("tcp", addr, config) //server connection
  25. if err != nil {
  26. panic(err)
  27. }
  28.  
  29. session, err := client.NewSession() //session creation
  30. if err != nil { //command execution
  31. panic(err)
  32. }
  33. defer session.Close()
  34.  
  35. stdin, err := session.StdinPipe() //создаем канал, который будет подключен к стандартным входам удаленной команды при запуске команды.
  36. if err != nil {
  37. fmt.Errorf("Unable to setup stdin for session: %v", err)
  38. }
  39. go io.Copy(stdin, os.Stdin)
  40.  
  41. stdout, err := session.StdoutPipe() // создаем канал, который будет подключен к стандартным выводам удаленной команды при запуске команды
  42. if err != nil {
  43. fmt.Errorf("Unable to setup stdout for session: %v", err)
  44. }
  45. go io.Copy(os.Stdout, stdout)
  46.  
  47.  
  48. // Start remote shell
  49. if err := session.Shell(); err != nil {
  50. log.Fatalf("failed to start shell: %s", err)
  51. }
  52.  
  53. // Accepting commands
  54. for {
  55. reader := bufio.NewReader(os.Stdin)
  56. str, _ := reader.ReadString('\n')
  57. fmt.Fprint(stdin, str)
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement