Skip to main content

SSH Connection

The SSH connection type enables automations to execute commands on remote Linux/Unix servers over a secure shell. It is used by the plugin-ssh plugin, which delegates to the ssh-connector.

Connection Type​

PropertyValue
Type enumSSH
Type IDssh
CategoryProtocol
Entity classSSHConnectionDetails

Friendly Example​

What you enterExample
Connection nameLinux Server - Maintenance
Used forRunning approved maintenance commands on a server
Main details to collectHost, port, username, password or private key, and allowed command scope
Best person to provide itServer or infrastructure administrator

After it is saved, workflow builders select Linux Server - Maintenance in a node instead of entering these details again.

Mandatory Fields​

FieldTypeRequiredDescription
hostStringYesHostname or IP address of the remote server.
usernameStringYesSSH login username on the remote server.

Authentication Fields​

You must provide one of the following authentication methods:

FieldTypeRequiredDescription
passwordStringConditionalSSH password for the user. Required for password-based authentication. Encrypted at rest.
privateKeyStored-file dropdownConditionalThe private key, selected from a File already uploaded to Global Configurator — not pasted inline. Required for key-based authentication. Upload the key under Files first, then choose it here.
Private keys are now stored Files

The private key is no longer pasted directly into the connection. Upload the key file to Global Configurator's Files section, then select it from the privateKey dropdown. The platform resolves the selected file to its content at runtime — see file-reference resolution for how this works.

Advanced Fields​

FieldTypeRequiredDescription
portStringNoSSH port. Defaults to 22.
passphraseStringNoPassphrase for the private key, if the key is encrypted. Encrypted at rest.
strictHostKeyCheckingStringNoSet to yes or no. Controls whether the connector verifies the server's host key. Defaults to no for convenience, but yes is recommended for production.
timeoutStringNoConnection timeout in milliseconds.

Bastion Host / Jump Server Fields​

When the target server is only reachable through a bastion host (jump server), enable useBastionHost and provide the bastion's connection details. The connector first opens an SSH session to the bastion, then tunnels through it to reach the target host.

FieldTypeRequiredDefaultDescription
useBastionHostCheckboxNofalseConnect to the target through a bastion host. When enabled, the fields below apply.
bastionHostVariableConditional--Hostname or IP address of the bastion / jump server. Required when useBastionHost is enabled.
bastionPortNumberConditional22SSH port on the bastion host. Required when useBastionHost is enabled.
bastionUsernameStringConditional--SSH login username on the bastion host. Required when useBastionHost is enabled.
bastionAuthMethodDropdownConditionalprivateKeyHow to authenticate to the bastion. One of privateKey or password. Required when useBastionHost is enabled.
bastionPasswordPasswordConditional--Password for the bastion user. Required when bastionAuthMethod is password. Encrypted at rest.
bastionPrivateKeyStored-file dropdownConditional--Private key for the bastion, selected from a File uploaded to Global Configurator. Required when bastionAuthMethod is privateKey.
info

The bastion authentication defaults to privateKey for SSH connections. Upload the bastion's private key under Files and select it in bastionPrivateKey, just like the target privateKey field.

Authentication Methods​

Password Authentication​

The simplest method. Provide the username and password fields. The remote server must have password authentication enabled in its SSH configuration (PasswordAuthentication yes in sshd_config).

Key-Based Authentication​

More secure and recommended for production. Provide the username and privateKey fields.

To set up key-based authentication:

  1. Generate an SSH key pair (if you do not already have one):

    ssh-keygen -t ed25519 -C "qinfinite-automation" -f qinfinite_key
  2. Copy the public key to the remote server:

    ssh-copy-id -i qinfinite_key.pub user@remote-host

    Or manually append the public key content to ~/.ssh/authorized_keys on the server.

  3. Upload the private key as a File. Save the private key (the full PEM block, e.g. -----BEGIN OPENSSH PRIVATE KEY----- … -----END OPENSSH PRIVATE KEY-----) to Global Configurator's Files section.

  4. Select the key file from the privateKey dropdown in the connection configuration. The platform resolves it to the key content at runtime; the key is not pasted into the connection.

  5. If the key has a passphrase, provide it in the passphrase advanced field.

Troubleshooting​

SymptomLikely Cause
Connection refusedSSH service is not running on the host, or a firewall is blocking the port
Auth fail with passwordWrong password, or password authentication is disabled on the server
Auth fail with keyPublic key not in authorized_keys, key format not supported, or wrong passphrase
Connection timed outHost is unreachable (DNS, network routing, or firewall issue)
Host key verification failedThe server's host key changed (possible security issue) or strictHostKeyChecking is yes and the key is not in known hosts