Back to Packer

Establish an SSH Connection

website/content/docs/communicators/ssh.mdx

1.15.34.5 KB
Original Source

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

[!IMPORTANT]
Documentation Update: Product documentation previously located in /website has moved to the 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 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 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 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:

For more information on the ciphers that Packer supports, check the docs for the ssh_ciphers template option.