Categorygithub.com/mmisiorek/go-sshclient
module
1.1.0
Repository: https://github.com/mmisiorek/go-sshclient.git
Documentation: pkg.go.dev

# README

WAT

A wrapper around go's core implementation of golang.org/x/crypto/ssh to make ssh and scp usage more convenient in the regular cases you need it

Library usage

Please see the examples here

Detailed

For ssh key based auth use this

package mystuff

import (
	"github.com/eugenmayer/go-sshclient/sshwrapper"
	"log"
)

func Run(cmd string) {
    sshApi, err := sshwrapper.DefaultSshApiSetup("somehost", 22, "root","/home/me/.ssh/id_rsa")    
    if err != nil {
        log.Fatal(err)
    }
    
    stdout, stderr, err := sshApi.Run(cmd)
    if err != nil {
        log.Print(stdout)
        log.Print(stderr)
        log.Fatal(err)
    }
}

If you want to use your local ssh agent

package mystuff

import (
	"github.com/eugenmayer/go-sshclient/sshwrapper"
	"log"
)

func Run(cmd string) {
	sshApi, err := sshwrapper.DefaultSshApiSetup("somehost", 22, "root","")    
    if err != nil {
        log.Fatal(err)
    }
    
    stdout, stderr, err := sshApi.Run(cmd)
    if err != nil {
        log.Print(stdout)
        log.Print(stderr)
        log.Fatal(err)
    }
}

And if you want to use (why..please why..) password based connection

package mystuff

import (
	"github.com/eugenmayer/go-sshclient/sshwrapper"
	"log"
)

func Run(cmd string) {
    sshApi, err := sshwrapper.DefaultSshApiSetup("somehost", 22, "root","")
    sshApi.Password = "test"
    // now override the auth config with a password baed config
    err = sshApi.DefaultSshPasswordSetup()
    if err != nil {
        log.Fatal(err)
    }
    
    stdout, stderr, err := sshApi.Run(cmd)
    if err != nil {
        log.Print(stdout)
        log.Print(stderr)
        log.Fatal(err)
    }
}

Tests

You need docker

make run-tests

# Packages

No description provided by the author
No description provided by the author
No description provided by the author