diff --git a/builder/amazon/common/run_config.go b/builder/amazon/common/run_config.go index 815583245..154a519e9 100644 --- a/builder/amazon/common/run_config.go +++ b/builder/amazon/common/run_config.go @@ -75,6 +75,14 @@ func (c *RunConfig) Prepare(ctx *interpolate.Context) []error { // Validation errs := c.Comm.Prepare(ctx) + if c.SSHKeyPairName != "" { + if c.Comm.Type == "winrm" && c.Comm.WinRMPassword == "" && c.Comm.SSHPrivateKey == "" { + errs = append(errs, errors.New("A private_key_file must be provided to retrieve the winrm password when using ssh_keypair_name.")) + } else if c.Comm.SSHPrivateKey == "" && !c.Comm.SSHAgentAuth { + errs = append(errs, errors.New("A private_key_file must be provided or ssh_agent_auth enabled when ssh_keypair_name is specified.")) + } + } + if c.SourceAmi == "" && c.SourceAmiFilter.Empty() { errs = append(errs, errors.New("A source_ami or source_ami_filter must be specified")) }