Fork me on GitHub

Teleport Users


Types of users

Unlike traditional SSH, Teleport introduces the concept of a User Account. A User Account is not the same as SSH login. Instead, each Teleport User is associated with another account which is used to authenticate the user.

For Open Source edition users, these will be OS users who are administered outside of Teleport on each cluster node. For example, there can be a Teleport user joe who can be permitted to log in as "root" to a specific subset of nodes. Another user juliet could be permitted to OS users root and to nginx. Teleport does not know the OS Users so it expects both root and nginx to exist on the node.

For Enterprise edition users, these can be stored in an external identity source such as OKTA, Active Directory, OneLogin, G Suite, or OIDC. Read the Enterprise Guide to learn more.

Teleport supports two types of user accounts: Local Users and External Users.

Local users

Local users are created and stored in Teleport's own identity storage in the Auth Server.

Let's look at this table:

Teleport UserAllowed OS LoginsDescription
joejoe, rootTeleport user joe can log in into member nodes as OS user joe or root.
julietjulietTeleport user juliet can log in into member nodes only as OS user juliet.
rossIf no OS login is specified, it defaults to the same name as the Teleport user, here this is ross.

A cluster administrator must create account entries for every Teleport user with tctl users add. Every Teleport User must be associated with a list of one or more machine-level OS usernames it can authenticate as during a login. This list is called "user mappings".

User Mappings

The diagram shows the following mappings. A couple of noteworthy things from this example:

  • Teleport User sandra does not have access to grav-02 through Teleport because ops is not an OS username on that node.
  • Teleport User joe has access to all nodes because the OS user root is present on all nodes.
Teleport Userloginshas access to nodes
joeroot, joegrav-00, grav-01, grav-02
tarataragrav-01, grav-02
teleportteleportgrav-00, grav-02
sandraopsgrav-00, grav-01

Teleport supports second-factor authentication (2FA) when using a local auth connector and it is enforced by default.

2FA Support

2FA is not supported with SSO providers such as GitHub or OKTA. To learn more about SSO configuration check out the SSO section of the Enterprise Guide

There are two types of 2FA supported:

TOTP is the default. You can use Google Authenticator or Authy or any other TOTP client.

External users

External users are users stored elsewhere within an organization. Examples include GitHub, Active Directory (AD), OIDC, or any identity store with an OpenID/OAuth2 or SAML endpoint.

Version Warning

External user storage is only supported in Teleport Enterprise. Please take a look at the Teleport Enterprise chapter for more information.

Multiple identity sources

It is possible to have multiple identity sources configured for a Teleport cluster. In this case, an identity source (called a "connector") will have to be passed to tsh --auth=connector_name login.

The local users connector can be specified via tsh --auth=local login.

User roles

Unlike traditional SSH, each Teleport user account is assigned a role. Having roles allows Teleport to implement role-based access control (RBAC), i.e. assign users to groups (roles) and restrict each role to a subset of actions on a subset of nodes in a cluster.

More concepts