Skip to content

Getting Access to Teleport

Teleport is the Unified Access Plane used at GitLab for audited, on-demand access to infrastructure resources including servers, databases, and Rails consoles.

You need the Teleport CLI client tsh installed on your local machine. Official packages for macOS and Linux are available on Teleport’s website.

Before you can use Teleport, you must be assigned the Teleport app in Okta. This is typically part of your role’s baseline group assignment during onboarding.

If your onboarding is complete and you still do not see the Teleport app listed in Okta, open an access request and follow the appropriate approval process.

Once you have the Teleport app assigned in Okta, log in using tsh:

Terminal window
tsh login --proxy=production.teleport.gitlab.net

This opens Okta in a browser window for authentication. After authenticating, your local tsh session is valid and you can connect to resources.

There is one Teleport instance available at https://production.teleport.gitlab.net. You can also use the Teleport Web UI as an alternative to the CLI.

Teleport uses Role-Based Access Control (RBAC). Your Okta group membership determines which Teleport roles you are assigned. Some roles are granted by default; others (such as read/write production access) require an explicit access request. Access granted via a request is temporary (12 hours). It may be renewed before or after expiration by following the same process.

When an access request is required, the general workflow is:

  1. Login to the Teleport web UI at https://production.teleport.gitlab.net.

  2. Navigate to the Access Requests page under Identity Governance on the left sidebar.

  3. Submit an access request for the role or resources you need.

  4. Ask an Engineering or Security manager to review the request.

  5. Once approved, log in with tsh using the request ID to assume the role.

    Terminal window
    # The request ID is returned in Step 1
    tsh login --request-id=<request-id>

If necessary, refer to Teleport’s documentation for more information.

You can use Teleport to:

If you have any issues using Teleport or the approval process, ask the Infrastructure Security team in the #security_help Slack channel.

To report a bug or problem with Teleport, open an issue with Infrastructure Security.

Error: failed to add one or more keys to the agent

Section titled “Error: failed to add one or more keys to the agent”

If you see:

ERROR: failed to add one or more keys to the agent.
agent: failure, agent: failure

This is caused by your ssh-agent configuration. Set TELEPORT_ADD_KEYS_TO_AGENT=no in your environment to work around it. You can persist this in your ~/.bashrc or ~/.zshrc, or prefix individual commands:

Terminal window
TELEPORT_ADD_KEYS_TO_AGENT=no tsh login

There is an open upstream issue tracking this.

If you have issues connecting, use the --debug flag for verbose output:

Terminal window
tsh --debug login --proxy=production.teleport.gitlab.net