https://github.com/eugenmayer/go-sshclient
Convenient wrapper around go's core implementation of golang.org/x/crypto/ssh
https://github.com/eugenmayer/go-sshclient
golang scp ssh
Last synced: 4 months ago
JSON representation
Convenient wrapper around go's core implementation of golang.org/x/crypto/ssh
- Host: GitHub
- URL: https://github.com/eugenmayer/go-sshclient
- Owner: EugenMayer
- License: mit
- Created: 2018-10-26T12:30:22.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-23T11:08:45.000Z (almost 2 years ago)
- Last Synced: 2025-04-12T20:53:24.448Z (6 months ago)
- Topics: golang, scp, ssh
- Language: Go
- Homepage:
- Size: 37.1 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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
- [ssh](https://github.com/EugenMayer/go-antibash-boilerplate/blob/master/cmd/myssh.go)
- [scp](https://github.com/EugenMayer/go-antibash-boilerplate/blob/master/cmd/myscp.go)
### Detailed
For ssh key based auth use this
```go
package mystuffimport (
"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
```go
package mystuffimport (
"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
```go
package mystuffimport (
"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
```bash
make run-tests
```