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.
Prerequisites
Section titled “Prerequisites”You need the Teleport CLI client
tsh installed on your local
machine. Official packages for
macOS and
Linux are available on
Teleport’s website.
Okta Access
Section titled “Okta Access”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.
Logging In
Section titled “Logging In”Command line interface
Section titled “Command line interface”Once you have the Teleport app assigned in Okta, log in using tsh:
tsh login --proxy=production.teleport.gitlab.netThis opens Okta in a browser window for authentication. After authenticating,
your local tsh session is valid and you can connect to resources.
Web interface
Section titled “Web interface”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.
Role-based access
Section titled “Role-based access”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.
Making an access request
Section titled “Making an access request”When an access request is required, the general workflow is:
-
Login to the Teleport web UI at https://production.teleport.gitlab.net.
-
Navigate to the Access Requests page under Identity Governance on the left sidebar.
-
Submit an access request for the role or resources you need.
-
Ask an Engineering or Security manager to review the request.
-
Once approved, log in with
tshusing the request ID to assume the role.Terminal window # The request ID is returned in Step 1tsh login --request-id=<request-id>
If necessary, refer to Teleport’s documentation for more information.
Next Steps
Section titled “Next Steps”You can use Teleport to:
Support
Section titled “Support”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.
Troubleshooting
Section titled “Troubleshooting”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: failureThis 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:
TELEPORT_ADD_KEYS_TO_AGENT=no tsh loginThere is an open upstream issue tracking this.
If you have issues connecting, use the --debug flag for verbose output:
tsh --debug login --proxy=production.teleport.gitlab.net