Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bufio"
- "fmt"
- "io"
- "log"
- "os"
- "golang.org/x/crypto/ssh"
- )
- func main() {
- config := &ssh.ClientConfig{ //config for ssh-client
- User: "lab_42_2018",
- Auth: []ssh.AuthMethod{
- ssh.Password("DFfdffuy934"),
- },
- }
- config.HostKeyCallback = ssh.InsecureIgnoreHostKey() //login, parol
- addr := fmt.Sprintf("%s:%d", "localhost", 2223)
- client, err := ssh.Dial("tcp", addr, config) //server connection
- if err != nil {
- panic(err)
- }
- session, err := client.NewSession() //session creation
- if err != nil { //command execution
- panic(err)
- }
- defer session.Close()
- stdin, err := session.StdinPipe() //создаем канал, который будет подключен к стандартным входам удаленной команды при запуске команды.
- if err != nil {
- fmt.Errorf("Unable to setup stdin for session: %v", err)
- }
- go io.Copy(stdin, os.Stdin)
- stdout, err := session.StdoutPipe() // создаем канал, который будет подключен к стандартным выводам удаленной команды при запуске команды
- if err != nil {
- fmt.Errorf("Unable to setup stdout for session: %v", err)
- }
- go io.Copy(os.Stdout, stdout)
- // Start remote shell
- if err := session.Shell(); err != nil {
- log.Fatalf("failed to start shell: %s", err)
- }
- // Accepting commands
- for {
- reader := bufio.NewReader(os.Stdin)
- str, _ := reader.ReadString('\n')
- fmt.Fprint(stdin, str)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement