github.com/amanya/packer@v0.12.1-0.20161117214323-902ac5ab2eb6/builder/profitbricks/ssh.go (about)

     1  package profitbricks
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/mitchellh/multistep"
     6  	"golang.org/x/crypto/ssh"
     7  )
     8  
     9  func commHost(state multistep.StateBag) (string, error) {
    10  	ipAddress := state.Get("server_ip").(string)
    11  	return ipAddress, nil
    12  }
    13  
    14  func sshConfig(state multistep.StateBag) (*ssh.ClientConfig, error) {
    15  	config := state.Get("config").(*Config)
    16  	privateKey := state.Get("privateKey").(string)
    17  
    18  	signer, err := ssh.ParsePrivateKey([]byte(privateKey))
    19  	if err != nil {
    20  		return nil, fmt.Errorf("Error setting up SSH config: %s", err)
    21  	}
    22  
    23  	return &ssh.ClientConfig{
    24  		User: config.Comm.SSHUsername,
    25  		Auth: []ssh.AuthMethod{
    26  			ssh.PublicKeys(signer),
    27  		},
    28  	}, nil
    29  }