Added documentation to existing functions
This commit is contained in:
parent
fb9c587be4
commit
732e1bd69c
@ -27,18 +27,20 @@ func (s sshrpcSession) Write(p []byte) (n int, err error) {
|
||||
return pipe.Write(p)
|
||||
}
|
||||
|
||||
// Client represents an RPC client using an SSH backed connection.
|
||||
type Client struct {
|
||||
*rpc.Client
|
||||
Config *ssh.ClientConfig
|
||||
Subsystem string
|
||||
}
|
||||
|
||||
// NewClient returns a new Client to handle RPC requests.
|
||||
func NewClient() *Client {
|
||||
|
||||
config := &ssh.ClientConfig{
|
||||
User: "test",
|
||||
User: "sshrpc",
|
||||
Auth: []ssh.AuthMethod{
|
||||
ssh.Password("test"),
|
||||
ssh.Password("sshrpc"),
|
||||
},
|
||||
}
|
||||
|
||||
@ -46,6 +48,7 @@ func NewClient() *Client {
|
||||
|
||||
}
|
||||
|
||||
// Connect starts a client connection to the given SSH/RPC server.
|
||||
func (c *Client) Connect(address string) {
|
||||
|
||||
sshClient, err := ssh.Dial("tcp", address, c.Config)
|
||||
|
15
server.go
15
server.go
@ -9,18 +9,18 @@ import (
|
||||
"golang.org/x/crypto/ssh"
|
||||
)
|
||||
|
||||
// Server represents an SSH Server that spins up RPC servers when requested.
|
||||
type Server struct {
|
||||
*rpc.Server
|
||||
Config *ssh.ServerConfig
|
||||
Subsystem string
|
||||
}
|
||||
|
||||
// NewServer returns a new Server to handle incoming SSH and RPC requests.
|
||||
func NewServer() *Server {
|
||||
c := &ssh.ServerConfig{
|
||||
// NoClientAuth: true,
|
||||
PasswordCallback: func(c ssh.ConnMetadata, pass []byte) (*ssh.Permissions, error) {
|
||||
// Should use constant-time compare (or better, salt+hash) in a production setting.
|
||||
if c.User() == "test" && string(pass) == "test" {
|
||||
if c.User() == "sshrpc" && string(pass) == "sshrpc" {
|
||||
return nil, nil
|
||||
}
|
||||
return nil, fmt.Errorf("password rejected for %q", c.User())
|
||||
@ -30,6 +30,7 @@ func NewServer() *Server {
|
||||
|
||||
}
|
||||
|
||||
// StartServer starts the server listening for requests
|
||||
func (s *Server) StartServer(address string) {
|
||||
|
||||
// Once a ServerConfig has been configured, connections can be accepted.
|
||||
@ -84,14 +85,6 @@ func (s *Server) handleChannels(chans <-chan ssh.NewChannel) {
|
||||
continue
|
||||
}
|
||||
|
||||
/*
|
||||
close := func() {
|
||||
channel.Close()
|
||||
log.Printf("session closed")
|
||||
}
|
||||
defer close()
|
||||
*/
|
||||
|
||||
// Sessions have out-of-band requests such as "shell", "pty-req" and "env"
|
||||
go func(in <-chan *ssh.Request) {
|
||||
for req := range in {
|
||||
|
Loading…
Reference in New Issue
Block a user