SSH configuration

SSH configuration #

Kamal uses SSH to connect run commands on your hosts. By default it will attempt to connect to the root user on port 22

If you are using non-root user, you may need to bootstrap your servers manually, before using them with Kamal. On Ubuntu, you’d do:

sudo apt update
sudo apt upgrade -y
sudo apt install -y docker.io curl git
sudo usermod -a -G docker app

SSH options #

The options are specified under the ssh key in the configuration file.

ssh:

The SSH user #

Defaults to root

  user: app

The SSH port #

Defaults to 22

  port: "2222"

Proxy host #

Specified in the form or @

  proxy: root@proxy-host

Proxy command #

A custom proxy command, required for older versions of SSH

  proxy_command: "ssh -W %h:%p user@proxy"

Log level #

Defaults to fatal. Set this to debug if you are having  SSH connection issues.

  log_level: debug

Keys Only #

Set to true to use only private keys from keys and key_data parameters, even if ssh-agent offers more identities. This option is intended for situations where ssh-agent offers many different identites or you have a need to overwrite all identites and force a single one.

  keys_only: false

Keys #

An array of file names of private keys to use for publickey and hostbased authentication

  keys: [ "~/.ssh/id.pem" ]

Key Data #

An array of strings, with each element of the array being a raw private key in PEM format.

  key_data: [ "-----BEGIN OPENSSH PRIVATE KEY-----" ]