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.

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.

The Teleport CLI client tsh must be installed on your local machine. Official packages for macOS and Linux are available on Teleport’s website (select CLI Client Tools from the drop down menu).

On macOS Teleport may also be installed via Homebrew:

Terminal window
brew install teleport

Once you have the Teleport app assigned in Okta, log in with 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.

Teleport has a web interface which you can access at https://production.teleport.gitlab.net. The web interface may be used as an alternative to the CLI for most tasks, including SSH access, database console access, making access requests, approving access requests and more.

Teleport Connect (optional alternative to tsh)

Section titled “Teleport Connect (optional alternative to tsh)”

Teleport Connect is a native app that provides the same access as tsh in a graphical interface. Official packages for macOS and Linux are available on Teleport’s website (select Desktop App: Teleport Connect from the drop down menu).

On macOS Teleport Connect may also be installed via Homebrew:

Terminal window
brew install teleport-connect

Teleport uses Role-Based Access Control (RBAC). Your Okta group membership determines which Teleport roles you are assigned. Some roles are granted by default (such as read-only non-prod access); others (such as 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.

Refer to the guides in Next steps for details on how to make an access request.

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