mirror of https://github.com/hashicorp/packer
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
4.7 KiB
98 lines
4.7 KiB
---
|
|
description: |
|
|
The `ssh` communicator establishes an SSH connection so that Packer can perform actions, such as upload files and execute scripts, on the machine it creates.
|
|
page_title: Establish an SSH connection
|
|
---
|
|
|
|
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
|
|
> [!IMPORTANT]
|
|
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
|
|
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
|
|
|
|
# Establish an SSH Connection
|
|
|
|
This topic describes how to use the `ssh` communicator to establish an SSH connection to the machine it creates so that Packer can perform actions, such as upload files and execute scripts.
|
|
|
|
## Introduction
|
|
|
|
Communicators are the mechanism Packer uses to upload files, execute scripts,
|
|
etc. on the machine being created, and are configured within the
|
|
[builder](/packer/docs/templates/legacy_json_templates/builders) section.
|
|
|
|
The `ssh` communicator does this by using the SSH protocol. It is the default
|
|
communicator for a majority of builders.
|
|
|
|
If you have an SSH agent configured on the host running Packer, and SSH agent
|
|
authentication is enabled in the communicator config, Packer will automatically
|
|
forward the SSH agent to the remote host.
|
|
|
|
## Getting Ready to Use the `ssh` Communicator
|
|
|
|
The `ssh` communicator is the default communicator for a majority of builders, but
|
|
depending on your builder it may not work "out of the box".
|
|
|
|
If you are building from a cloud image (for example, building on Amazon), there
|
|
is a good chance that your cloud provider has already preconfigured SSH on the
|
|
image for you, meaning that all you have to do is configure the communicator in
|
|
the Packer template.
|
|
|
|
However, if you are building from a brand-new and unconfigured operating system
|
|
image, you will almost always have to perform some extra work to configure SSH
|
|
on the guest machine. For most operating system distributions, this work will
|
|
be performed by a [boot command](/packer/plugins/builders/vmware/iso#boot-configuration)
|
|
that references a file which provides answers to the normally-interactive
|
|
questions you get asked when installing an operating system. The name of this
|
|
file varies by operating system; some common examples are the "preseed" file
|
|
required by Debian, the "kickstart" file required by CentOS or the
|
|
"answer file", also known as the Autounattend.xml file, required by Windows.
|
|
For simplicity's sake, we'll refer to this file as the "preseed" file in the
|
|
rest of the documentation.
|
|
|
|
If you are unfamiliar with how to use a preseed file for automatic
|
|
bootstrapping of an image, please either take a look at our
|
|
[quick guides](/packer/guides/automatic-operating-system-installs) to
|
|
image bootstrapping, or research automatic configuration for your specific
|
|
guest operating system. Knowing how to automatically initalize your operating
|
|
system is critical for being able to successfully use Packer.
|
|
|
|
## `ssh` Communicator Reference
|
|
|
|
The `ssh` communicator connects to the host via SSH. If you have an SSH agent
|
|
configured on the host running Packer, and SSH agent authentication is enabled
|
|
in the communicator config, Packer will automatically forward the SSH agent to
|
|
the remote host.
|
|
|
|
The `ssh` communicator has the following options:
|
|
|
|
@include "packer-plugin-sdk/communicator/SSH-not-required.mdx"
|
|
|
|
@include "packer-plugin-sdk/communicator/SSH-Key-Pair-Name-not-required.mdx"
|
|
|
|
@include "packer-plugin-sdk/communicator/SSH-Agent-Auth-not-required.mdx"
|
|
|
|
@include "packer-plugin-sdk/communicator/SSH-Temporary-Key-Pair-not-required.mdx"
|
|
|
|
@include "packer-plugin-sdk/communicator/SSH-Private-Key-File-not-required.mdx"
|
|
|
|
~> Note: The options `ssh_keypair_name`, `ssh_agent_auth`,
|
|
`temporary_key_pair_name`, and `ssh_private_key_file` are supported by the
|
|
communicator; however, they may not be supported for every builder. Please refer
|
|
to the builder documentation for supported options.
|
|
|
|
### `ssh` Communicator Details
|
|
|
|
Packer will only use one authentication method, either `publickey` or if
|
|
`ssh_password` is used Packer will offer `password` and `keyboard-interactive`
|
|
both sending the password. In other words Packer will not work with _sshd_
|
|
configured with more than one configured authentication method using
|
|
`AuthenticationMethods`.
|
|
|
|
Packer supports the following MACs:
|
|
|
|
- hmac-sha1
|
|
- hmac-sha1-96
|
|
- hmac-sha2-256
|
|
- `hmac-sha2-256-etm@openssh.com`
|
|
|
|
For more information on the ciphers that Packer supports, check the docs for
|
|
the [ssh_ciphers](/packer/docs/communicators/ssh#ssh_ciphers) template option. |