Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bufio"
- "flag"
- "fmt"
- "golang.org/x/crypto/ssh"
- "log"
- "os"
- )
- func main() {
- var (
- host string
- port int
- user string
- password string
- )
- flag.StringVar(&host, "h", "185.20.227.83", "ssh server address")
- flag.IntVar(&port, "port", 22, "port of ssh server")
- flag.StringVar(&user, "u", "iu9_32_19", "username")
- flag.StringVar(&password, "p", "123qwe", "password")
- flag.Parse()
- config := &ssh.ClientConfig{
- User: user,
- Auth: []ssh.AuthMethod{
- ssh.Password(password)},
- HostKeyCallback: ssh.InsecureIgnoreHostKey()}
- client, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", host, port), config)
- if err != nil {
- panic(err)
- }
- defer client.Close()
- session, err := client.NewSession()
- if err != nil {
- panic(err)
- }
- defer session.Close()
- stdin, err := session.StdinPipe()
- if err != nil {
- panic(err)
- }
- session.Stdout = os.Stdout
- session.Stderr = os.Stderr
- err = session.Shell()
- if err != nil {
- panic(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