github.com/ablease/cli@v6.37.1-0.20180613014814-3adbb7d7fb19+incompatible/util/clissh/secure_dialer.go (about)

     1  package clissh
     2  
     3  import (
     4  	"golang.org/x/crypto/ssh"
     5  	"golang.org/x/net/proxy"
     6  )
     7  
     8  type fakeConn struct{}
     9  
    10  type secureDialer struct{}
    11  
    12  func DefaultSecureDialer() secureDialer {
    13  	return secureDialer{}
    14  }
    15  
    16  func (secureDialer) Dial(network string, address string, config *ssh.ClientConfig) (SecureClient, error) {
    17  	conn, err := proxy.FromEnvironment().Dial(network, address)
    18  	if err != nil {
    19  		return secureClient{}, err
    20  	}
    21  
    22  	c, chans, reqs, err := ssh.NewClientConn(conn, address, config)
    23  	if err != nil {
    24  		return secureClient{}, err
    25  	}
    26  	client := ssh.NewClient(c, chans, reqs)
    27  
    28  	return secureClient{client: client}, nil
    29  }