Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bufio"
- "fmt"
- "os"
- "strings"
- "syscall"
- "io"
- "golang.org/x/crypto/ssh"
- "golang.org/x/crypto/ssh/terminal"
- )
- func main() {
- username, password := credentials()
- sshConfig := &ssh.ClientConfig{
- User: username,
- Auth: []ssh.AuthMethod{
- ssh.Password(password)},
- }
- sshConfig.SetDefaults()
- client, err := ssh.Dial("tcp", "lgserv3.stud.cs.uit.no:22", sshConfig)
- session, err := client.NewSession()
- stdin, err := session.StdinPipe()
- if err != nil {
- panic(err)
- }
- go io.Copy(stdin, os.Stdin)
- stdout, err := session.StdoutPipe()
- if err != nil {
- panic(err)
- }
- go io.Copy(os.Stdout, stdout)
- stderr, err := session.StderrPipe()
- if err != nil {
- panic(err)
- }
- go io.Copy(os.Stderr, stderr)
- err = session.Run("ls -l $LC_USR_DIR")
- }
- func credentials() (string, string) {
- reader := bufio.NewReader(os.Stdin)
- fmt.Print("Enter Username: ")
- username, _ := reader.ReadString('\n')
- fmt.Print("Enter Password: ")
- bytePassword, _ := terminal.ReadPassword(int(syscall.Stdin))
- password := string(bytePassword)
- return strings.TrimSpace(username), strings.TrimSpace(password)
- }
- /*
- func PublicKeyFile(file string) ssh.AuthMethod {
- buffer, err := ioutil.ReadFile(file)
- if err != nil {
- return nil
- }
- key, err := ssh.ParsePrivateKey(buffer)
- if err != nil {
- return nil
- }
- return ssh.PublicKeys(key)
- }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement