Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bufio"
- "flag"
- "fmt"
- "log"
- "net"
- "os"
- "golang.org/x/crypto/ssh"
- )
- var (
- user = flag.String("user", "iu9_32_09", "User name")
- pass = flag.String("pass", "bydfkbl5151", "Password for login")
- port = flag.Int("port", 22, "Port")
- host = flag.String("host", "185.20.227.83", "Host")
- )
- func main() {
- flag.Parse()
- config := &ssh.ClientConfig{
- User: *user,
- Auth: []ssh.AuthMethod{
- ssh.Password(*pass)},
- HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
- return nil
- }}
- addr := fmt.Sprintf("%s:%d", *host, *port)
- // звоним на сервер
- client, err := ssh.Dial("tcp", addr, config)
- if err != nil {
- log.Fatal(err)
- }
- // создаём ssh сессию
- session, err := client.NewSession()
- if err != nil {
- log.Fatal(err)
- }
- // не забываем закрыть перед выходом
- defer session.Close()
- stdin, err := session.StdinPipe()
- if err != nil {
- log.Fatal(err)
- }
- session.Stdout = os.Stdout
- session.Stderr = os.Stderr
- err = session.Shell()
- if err != nil {
- log.Fatal(err)
- }
- scanner := bufio.NewScanner(os.Stdin)
- for scanner.Scan() {
- s := scanner.Text()
- _, err = fmt.Fprintf(stdin, "%s\n", s)
- if err != nil {
- log.Fatal(err)
- }
- if s == "exit" {
- break
- }
- }
- err = session.Wait()
- if err != nil {
- log.Fatal(err)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement