Skip to content
go wrapper for libssh (both client and server side)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
.gitignore
.gitmodules
README.md
auth.go
buffer.go
buffer_test.go
callbacks.c
callbacks.go
callbacks.h
channel.go
const.go
event.go
gssapi.go
install-libs.sh
key.go
lib.go
libssh.rb
logging.go
message.go
misc.go
scp.go
server.go
session.go
sftp.go
ssh2.go
string.go

README.md

libssh to go

libssh is a mulitplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side. With libssh, you can remotely execute programs, transfer files, use a secure and transparent tunnel, manage public keys and much more. www.libssh.org

ssh2go is Go bindings for libssh. The master branch follows the latest libssh code.

Installing

ssh2go depends on libssh, so make sure you've installed the Lastest git version of libssh

For Mac OS (darwin)

use homebrew

brew install --HEAD https://raw.githubusercontent.com/karfield/ssh2go/master/libssh.rb

go get github.com/karfield/ssh2go

If you have installed libssh but not the latest version in Mac OS, you should reinstall it:

brew reinstall --HEAD https://raw.githubusercontent.com/karfield/ssh2go/master/libssh.rb
brew link --force libssh

Build from scratch

If you want to build the libssh from scratch, use the './install-libs.sh' to install the prequisitements.

go get -d github.com/karfield/ssh2go

cd $GOPATH/src/github.com/karfield/ssh2go

git submodule update --init --recursive

./install-libs.sh

go install

Examples

simple-sshd

Custom a sshd, and run it locally.

Try now or read the code

go install github.com/karfield/ssh2go/examples/ssh2go-simple-sshd

see some options:

option shortcuts default description
port p 2222 Set the port to bind.
hostkey k Set the hostkey file path.
dsakey d Set the dsa key.
rsakey r Set the rsa key.
verbose V Get verbose output.

run it:

ssh2go-simple-sshd --dsakey=/path/to/your/dsakey --rsakey=/path/to/your/rsakey --port 8888 -V

then open another terminal, run as a client:

ssh localhost -p 8888 -l test

multi-sshd

like simple-sshd, to run as server:

ssh2go-multi-sshd --dsakey=/path/to/your/dsakey --rsakey=/path/to/your/rsakey --port 8888 -V

Note:

granted user and password: test / test

You can’t perform that action at this time.