communicator/ssh: switch agent default to true
This changes SSH Agent utilization from opt-in to opt-out, bringing Terraform in line with the behavior of Packer and the `ssh` command itself. But skip SSH agent connections if the SSH_AUTH_SOCK env var doesn't exist, whcih means there's no agent to connect to.
This commit is contained in:
parent
7850bb39d5
commit
44de0996c5
|
@ -62,6 +62,15 @@ func parseConnectionInfo(s *terraform.InstanceState) (*connectionInfo, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// To default Agent to true, we need to check the raw string, since the
|
||||||
|
// decoded boolean can't represent "absence of config".
|
||||||
|
//
|
||||||
|
// And if SSH_AUTH_SOCK is not set, there's no agent to connect to, so we
|
||||||
|
// shouldn't try.
|
||||||
|
if s.Ephemeral.ConnInfo["agent"] == "" && os.Getenv("SSH_AUTH_SOCK") != "" {
|
||||||
|
connInfo.Agent = true
|
||||||
|
}
|
||||||
|
|
||||||
if connInfo.User == "" {
|
if connInfo.User == "" {
|
||||||
connInfo.User = DefaultUser
|
connInfo.User = DefaultUser
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ provisioner "file" {
|
||||||
* `key_file` - The SSH key to use for the connection. This takes preference over the
|
* `key_file` - The SSH key to use for the connection. This takes preference over the
|
||||||
password if provided.
|
password if provided.
|
||||||
|
|
||||||
* `agent` - Set to true to enable using ssh-agent to authenticate.
|
* `agent` - Set to false to disable using ssh-agent to authenticate.
|
||||||
|
|
||||||
**Additional arguments only supported by the "winrm" connection type:**
|
**Additional arguments only supported by the "winrm" connection type:**
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue