Understanding Hosts, Groups and Identities

The core concepts of Termius are hosts, identities, and groups; these concepts aim to simplify the management of hundreds of servers. Essentially, hosts are remote machines you can connect to; identities consolidate credentials for authentication, while groups offer a logical organization of hosts and allow the reuse of common parameters. This article explains these concepts in more detail.

Hosts

A host represents a remote server in Termius. It stores connection details required to establish a one-click connection and metadata to simplify discoverability.

A single host in Termius could be configured with multiple protocols such as SSH, SFTP, Mosh, and Telnet. Read more about supported protocols.

Connection details are essential to establish a one-click connection and eliminate the need for re-entering this information every time you need to connect. These details include hostname/IP address, connection protocol, port, and user credentials such as usernames, passwords, or SSH keys.

In addition to common connection details, you can use advanced protocol-specific features like jump hosts, proxy connections, and agent forwarding. Host Chain allows the setup of the one-click connection through bastion hosts or SSH gateways to a target host that may not be directly accessible from a public network. Proxy allows you to use an intermediary proxy server for connection. Agent Forwarding allows the authentication of additional SSH connections from an original remote host without a need to input credentials.

Metadata helps you to organize and quickly find the right host among hundreds of others. You can label a host, provide tags to separate production and development machines, and organize hosts with groups by clients. Every host has an icon; Termius automatically detects your remote machine OS by default and sets the corresponding icon after the first connection.

Groups

Groups provide a way to organize related hosts together and provide them with shared connection details and metadata.

You can bundle hosts by project, environment, client, or any other category that first your workflow. Groups support nested structure, which allows the creation of subgroups within a parent group, turning the organization of hosts into a hierarchical, multi-level system. This is particularly beneficial for complex projects with multiple layers or large collections of hosts, as it allows for a more precise categorization and navigation.

Groups allow connection details and metadata to be assigned once and then automatically adopted by all linked hosts and subgroups. This eliminates the need for redundant specifications of these properties for each host or subgroup, significantly streamlining and simplifying the configuration process. For instance, properties such as usernames, passwords, or color themes can be defined at a group level and are then inherited by all hosts and subgroups within the group.

Identities

Identities provide a way to consolidate sets of credentials used to authenticate on multiple hosts. These could include usernames, passwords, SSH keys, certificates, FIDO2, and Biometric keys. The power of identities is that they provide a centralized place to define, reuse, and rotate credentials for multiple hosts and groups.

For instance, you can have a single SSH key and username to authenticate on hundreds of hosts. When the time comes to rotate a key on all of these hundreds of servers, you can do it easily with the identities. Once your new public key is delivered to remote machines, you'll need to select a new SSH key in one identity without changing multiple hosts and groups.