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 }