CRYPTSETUP-SSH(8) Maintenance Commands CRYPTSETUP-SSH(8)

# [NAME](#NAME)

cryptsetup-ssh - manage LUKS2 SSH token

# [SYNOPSIS](#SYNOPSIS)

**cryptsetup-ssh &lt;action&gt; \[&lt;options&gt;] &lt;action args&gt;**

# [DESCRIPTION](#DESCRIPTION)

Experimental cryptsetup plugin for unlocking LUKS2 devices with a token connected to an SSH server.

This plugin currently allows only adding a token to an existing keyslot. See [**cryptsetup**(8)](/man/enterprise-packages/cryptsetup-fips/cryptsetup.8) for instructions on how to remove, import or export the token.

## [Add operation](#Add_operation)

**add &lt;options&gt; &lt;device&gt;**

Adds the SSH token to **&lt;device&gt;**.

The specified SSH server must contain a key file on the specified path with a passphrase for an existing keyslot on the device. Provided credentials will be used by cryptsetup to get the password when opening the device using the token.

Options --ssh-server, --ssh-user, --ssh-keypath and --ssh-path are required for this operation.

# [OPTIONS](#OPTIONS)

**--debug**

Show debug messages

**--debug-json**

Show debug messages including JSON metadata

**--help**, **-?**

Show help

**--key-slot** *number*

Keyslot to assign the token to. If not specified, the token will be assigned to the first keyslot matching the provided passphrase.

**--ssh-keypath** *string*

Path to the SSH key for connecting to the remote server.

**--ssh-path** *string*

Path to the key file on the remote server.

**--ssh-server** *string*

IP address/URL of the remote server for this token.

**--ssh-user** *string*

The username used for the remote server.

**--verbose**, **-v**

Shows more detailed error messages

**--version**, **-V**

Print program version

# [NOTES](#NOTES)

The information provided when adding the token (SSH server address, user and paths) will be stored in the LUKS2 header in plaintext.

# [AUTHORS](#AUTHORS)

The cryptsetup-ssh tool is written by Vojtech Trefny.

# [REPORTING BUGS](#REPORTING_BUGS)

Report bugs at *cryptsetup mailing list* &lt;cryptsetup@lists.linux.dev&gt; or in *Issues project section* &lt;https://gitlab.com/cryptsetup/cryptsetup/-/issues/new&gt;.

Please attach the output of the failed command with --debug option added.

# [SEE ALSO](#SEE_ALSO)

*Cryptsetup FAQ* &lt;https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions&gt;

[**cryptsetup**(8)](/man/enterprise-packages/cryptsetup-fips/cryptsetup.8), [**integritysetup**(8)](/man/enterprise-packages/cryptsetup-fips/integritysetup.8) and [**veritysetup**(8)](/man/enterprise-packages/cryptsetup-fips/veritysetup.8)

# [CRYPTSETUP](#CRYPTSETUP)

Part of *cryptsetup project* &lt;https://gitlab.com/cryptsetup/cryptsetup/&gt;.

2026-10-01 cryptsetup-ssh 2.8.8

---

Document: cryptsetup-ssh(8) from cryptsetup-fips 2.8.8-r4 (Chainguard OS)
Source: https://gitlab.com/cryptsetup/cryptsetup.git
