Skip to main content

tctl Reference

Report an Issue

This guide provides a comprehensive list of commands, arguments, and flags for tctl: Admin tool for the Teleport Infrastructure Identity Platform

tctl [<flags>] <command> [<args> ...]

Global flags:

FlagDefaultDescription
--auth-servernoneAttempts to connect to specific auth/proxy address(es) instead of local auth [127.0.0.1:3025]
-c, --confignonePath to a configuration file [/etc/teleport.yaml] for an Auth Service instance. Can also be set via the TELEPORT_CONFIG_FILE environment variable. Ignored if the auth_service is disabled.
-d, --[no-]debugfalseEnable verbose logging to stderr
-i, --identitynonePath to an identity file. Must be provided to make remote connections to auth. An identity file can be exported with 'tctl auth sign'
--[no-]insecurefalseWhen specifying a proxy address in --auth-server, do not verify its TLS certificate. Danger: any data you send can be intercepted or modified by an attacker.

Global environment variables:

VariableDefaultDescription
TELEPORT_AUTH_SERVERnoneAttempts to connect to specific auth/proxy address(es) instead of local auth [127.0.0.1:3025]
TELEPORT_IDENTITY_FILEnonePath to an identity file. Must be provided to make remote connections to auth. An identity file can be exported with 'tctl auth sign'

tctl acl get

Get detailed information for an Access List.

Usage:

tctl acl get [<flags>] <access-list-name>

Flags:

FlagDefaultDescription
--formatyamlOutput format, 'yaml', 'json', or 'text'

Arguments:

ArgumentDefaultDescription
access-list-namenone (required)The Access List name.

tctl acl ls

List cluster Access Lists.

Usage:

tctl acl ls [<flags>]

Flags:

FlagDefaultDescription
--formatyamlOutput format, 'yaml', 'json', or 'text'

tctl acl users add

Add a user to an Access List.

Usage:

tctl acl users add [<flags>] <access-list-name> <user> [<expires>] [<reason>]

Flags:

FlagDefaultDescription
--kinduserAccess list member kind, 'user' or 'list'

Arguments:

ArgumentDefaultDescription
access-list-namenone (required)The Access List name.
expiresnone (optional)When the user's access expires (must be in RFC3339). Defaults to the expiration time of the Access List.
reasonnone (optional)The reason the user has been added to the Access List. Defaults to empty.
usernone (required)The user to add to the Access List.

tctl acl users ls

List users that are members of an Access List.

Usage:

tctl acl users ls [<flags>] <access-list-name>

Flags:

FlagDefaultDescription
--formattextOutput format 'json', or 'text'

Arguments:

ArgumentDefaultDescription
access-list-namenone (required)The Access List name.

tctl acl users rm

Remove a user from an Access List.

Usage:

tctl acl users rm <access-list-name> <user>

Arguments:

ArgumentDefaultDescription
access-list-namenone (required)The Access List name.
usernone (required)The user to remove from the Access List.

tctl alerts ack

Acknowledge cluster alerts.

Usage:

tctl alerts ack [<flags>] <id>

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', 'json', or 'yaml'
--[no-]clearfalseClear the acknowledgment for the cluster alert.
--reasonnoneThe reason for acknowledging the cluster alert.
--ttlnoneTime duration to acknowledge the cluster alert for.

Arguments:

ArgumentDefaultDescription
idnone (required)The cluster alert ID.

tctl alerts ack ls

List acknowledged cluster alerts.

Usage:

tctl alerts ack ls

tctl alerts create

Create cluster alerts.

Usage:

tctl alerts create [<flags>] <message>

Flags:

FlagDefaultDescription
--labelsnoneList of labels to attach to the alert. For example: key1=value1,key2=value2.
--severitylowSeverity of the alert (low, medium, or high).
--ttlnoneTime duration after which the alert expires (default 24h).

Arguments:

ArgumentDefaultDescription
messagenone (required)Alert body message.

tctl alerts list

List cluster alerts.

Usage:

tctl alerts list [<flags>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', 'json', or 'yaml'
--labelsnoneList of comma separated labels to filter by labels (e.g. key1=value1,key2=value2)
-v, --[no-]verbosefalseShow detailed alert info, including acknowledged alerts.

tctl apps ls

List all applications registered with the cluster.

Usage:

tctl apps ls [<flags>] [<labels>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', 'json', or 'yaml'
--querynoneQuery by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"')
--searchnoneList of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase")
-v, --[no-]verbosefalseVerbose table output, shows full label output

Arguments:

ArgumentDefaultDescription
labelsnone (optional)List of comma separated labels to filter by labels (e.g. key1=value1,key2=value2)

tctl audit query create

Create an audit query.

Usage:

tctl audit query create [<flags>] [<query>]

Flags:

FlagDefaultDescription
--namenoneAudit query name

Arguments:

ArgumentDefaultDescription
querynone (optional)SQL Query

tctl audit query exec

Execute audit query.

Usage:

tctl audit query exec [<query>]

Arguments:

ArgumentDefaultDescription
querynone (optional)SQL Query

tctl audit query get

Get audit query.

Usage:

tctl audit query get <name>

Arguments:

ArgumentDefaultDescription
namenone (required)name of the audit query

tctl audit query ls

List audit queries.

Usage:

tctl audit query ls

tctl audit query rm

Remove audit query.

Usage:

tctl audit query rm <name>

Arguments:

ArgumentDefaultDescription
namenone (required)name of the audit query

tctl audit report get

Get security report.

Usage:

tctl audit report get <name>

Arguments:

ArgumentDefaultDescription
namenone (required)security name

tctl audit report ls

List security reports.

Usage:

tctl audit report ls

tctl audit report run

Run the security report.

Usage:

tctl audit report run <name>

Arguments:

ArgumentDefaultDescription
namenone (required)security report name

tctl audit report state

Print the state of the security report.

Usage:

tctl audit report state <name>

Arguments:

ArgumentDefaultDescription
namenone (required)security report name

tctl audit schema

Print audit query schema.

Usage:

tctl audit schema

tctl auth crl

Export empty certificate revocation list (CRL) for Teleport certificate authorities.

Usage:

tctl auth crl --type=TYPE [<flags>]

Flags:

FlagDefaultDescription
--outnoneIf set, writes exported revocation lists to files with the given path prefix
--typenoneCertificate authority type, one of: host, db, db_client, user

tctl auth export

Export public cluster CA certificates to stdout.

Usage:

tctl auth export [<flags>]

Flags:

FlagDefaultDescription
--compatnoneexport certificates compatible with specific version of Teleport
--fingerprintnonefilter authority by fingerprint
--integrationnoneName of the integration. Only applies to "github" CAs.
--[no-]keysfalseif set, will print private keys
--outnoneIf set writes exported authorities to files with the given path prefix
--typenoneexport certificate type (user, host, tls-host, tls-user, tls-user-der, tls-spiffe, windows, db, db-der, db-client, db-client-der, openssh, saml-idp, github, awsra)

tctl auth ls

List connected auth servers.

Usage:

tctl auth ls [<flags>]

Flags:

FlagDefaultDescription
--formatyamlOutput format: 'yaml', 'json' or 'text'

tctl auth rotate

Rotate certificate authorities in the cluster. Starts in interactive mode by default, provide --type to manually send rotation requests.

Usage:

tctl auth rotate [<flags>]

Flags:

FlagDefaultDescription
--grace-period30h0m0sGrace period keeps previous certificate authorities signatures valid, if set to 0 will force users to re-login and nodes to re-register.
--[no-]interactivefalseEnable interactive mode
--[no-]manualfalseActivate manual rotation, set rotation phases manually
--phasenoneTarget rotation phase to set, used in manual rotation, one of: init, standby, update_clients, update_servers, rollback
--typenoneCertificate authority to rotate, one of: host, user, db, db_client, openssh, jwt, saml_idp, oidc_idp, spiffe, okta, awsra, bound_keypair

tctl auth sign

Create an identity file(s) for a given user.

Usage:

tctl auth sign --out=OUT [<flags>]

Flags:

FlagDefaultDescription
--app-namenoneApplication to generate identity file for. Mutually exclusive with "--db-service".
--compatnoneOpenSSH compatibility flag
--db-namenoneDatabase name placed on the identity file. Only used when "--db-service" is set.
--db-servicenoneDatabase to generate identity file for. Mutually exclusive with "--app-name".
--db-usernoneDatabase user placed on the identity file. Only used when "--db-service" is set.
--formatfileIdentity format: file, openssh, tls, kubernetes, db, windows, mongodb, cockroachdb, redis, snowflake, elasticsearch, cassandra, scylla, oracle. file is the default.
--hostnoneTeleport host name
--kube-cluster-namenoneKubernetes cluster to generate identity file for when --format is set to "kubernetes"
--leaf-clusternoneLeaf cluster to generate identity file for when --format is set to "kubernetes"
--[no-]omit-cdpfalseOmit CRL Distribution Points from the cert. Only used when --format is set to "windows"
--[no-]overwritefalseWhether to overwrite existing destination files. When not set, user will be prompted before overwriting any existing file.
--[no-]tarfalseCreate a tarball of the resulting certificates and stream to stdout.
-o, --outnoneIdentity output
--proxynoneAddress of the Teleport proxy. When --format is set to "kubernetes", this address will be set as cluster address in the generated kubeconfig file
--ttl12h0m0sTTL (time to live) for the generated certificate.
--usernoneTeleport user name
--windows-domainnoneActive Directory domain for which this cert is valid. Only used when --format is set to "windows"
--windows-pki-domainnoneActive Directory domain where CRLs will be located. Only used when --format is set to "windows"
--windows-sidnoneOptional Security Identifier to embed in the certificate. Only used when --format is set to "windows"
--windows-usernoneWindow user placed on the identity file. Only used when --format is set to "windows"

tctl autoupdate agents mark-done

Marks one or many groups as done updating.

Usage:

tctl autoupdate agents mark-done [<groups>...]

Arguments:

ArgumentDefaultDescription
groupsnone (optional)Groups to mark as done updating.

tctl autoupdate agents report

Aggregates the agent autoupdate reports and displays agent count per version and per update group.

Usage:

tctl autoupdate agents report

tctl autoupdate agents rollback

Rolls back one or many groups.

Usage:

tctl autoupdate agents rollback [<groups>...]

Arguments:

ArgumentDefaultDescription
groupsnone (optional)Groups to rollback. When empty, every group already started is rolled back.

tctl autoupdate agents start-update

Starts updating one or many groups.

Usage:

tctl autoupdate agents start-update [<flags>] [<groups>...]

Flags:

FlagDefaultDescription
--[no-]forcefalseSkips progressive deployment mechanism such as canaries or backpressure.

Arguments:

ArgumentDefaultDescription
groupsnone (optional)Groups to start updating.

tctl autoupdate agents status

Prints agents auto update status.

Usage:

tctl autoupdate agents status

tctl autoupdate client-tools disable

Disables client tools auto updates. Clients will not be told to update to the target version.

Usage:

tctl autoupdate client-tools disable

tctl autoupdate client-tools enable

Enables client tools auto updates. Clients will be told to update to the target version.

Usage:

tctl autoupdate client-tools enable

tctl autoupdate client-tools status

Prints if the client tools updates are enabled/disabled, and the target version in specified format.

Usage:

tctl autoupdate client-tools status [<flags>]

Flags:

FlagDefaultDescription
--formatyamlOutput format: 'yaml' or 'json'
--proxynoneAddress of the Teleport proxy. When defined this address will be used to retrieve client tools auto update configuration.

tctl autoupdate client-tools target

Sets the client tools target version. This command is not supported on Teleport Cloud.

Usage:

tctl autoupdate client-tools target [<flags>] [<version>]

Flags:

FlagDefaultDescription
--[no-]clearfalseRemoves the target version, Teleport will default to its current proxy version.

Arguments:

ArgumentDefaultDescription
versionnone (optional)Client tools target version. Clients will be told to update to this version.

tctl bots add

Add a new certificate renewal bot to the cluster.

Usage:

tctl bots add [<flags>] <name>

Flags:

FlagDefaultDescription
--loginsnoneList of allowed SSH logins for the bot user
--max-session-ttlnoneSet a max session TTL for the bot's internal identity. 12h default, 168h maximum.
--rolesnoneRoles the bot is able to assume.
--tokennoneName of an existing token to use.
--ttlnoneTTL for the bot join token.

Arguments:

ArgumentDefaultDescription
namenone (required)A name to uniquely identify this bot in the cluster.

tctl bots instances add

Join a new instance onto an existing bot.

Usage:

tctl bots instances add [<flags>] <name>

Flags:

FlagDefaultDescription
--formattextOutput format, one of: text, json
--tokennoneThe token to use, if any. If unset, a new one-time-use token will be created.

Arguments:

ArgumentDefaultDescription
namenone (required)The name of the existing bot for which to add a new instance.

tctl bots instances list

List bot instances.

Usage:

tctl bots instances list [<flags>] [<name>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text' or 'json'
--querynoneAn expression in the Teleport predicate language used to filter bot instances
--searchnoneFuzzy search query used to filter bot instances
--sort-indexbot_nameRequest sort index, 'bot_name', 'active_at_latest', 'version_latest' or 'host_name_latest'
--sort-orderascendingRequest sort order, 'ascending' or 'descending'

Arguments:

ArgumentDefaultDescription
namenone (optional)The name of the bot from which to list instances. If unset, lists instances from all bots.

tctl bots instances show

Shows information about a specific bot instance.

Usage:

tctl bots instances show <id>

Arguments:

ArgumentDefaultDescription
idnone (required)The full ID of the bot instance, in the form of [bot name]/[uuid]

tctl bots ls

List all certificate renewal bots registered with the cluster.

Usage:

tctl bots ls

tctl bots rm

Permanently remove a certificate renewal bot from the cluster.

Usage:

tctl bots rm <name>

Arguments:

ArgumentDefaultDescription
namenone (required)Name of an existing bot to remove.

tctl bots update

Update an existing bot.

Usage:

tctl bots update [<flags>] <name>

Flags:

FlagDefaultDescription
--add-loginsnoneAdds a comma-separated list of logins to an existing bot.
--add-rolesnoneAdds a comma-separated list of roles to an existing bot.
--set-loginsnoneSets the bot's logins to the given comma-separated list, replacing any existing logins.
--set-max-session-ttlnoneSets the max session TTL. 168h maximum.
--set-rolesnoneSets the bot's roles to the given comma-separated list, replacing any existing roles.

Arguments:

ArgumentDefaultDescription
namenone (required)Name of an existing bot to update.

tctl bound-keypair request-rotation

Request a keypair rotation on the next join attempt.

Usage:

tctl bound-keypair request-rotation <name>

Arguments:

ArgumentDefaultDescription
namenone (required)The name of the token

tctl create

Create or update a Teleport resource from a YAML file.

Usage:

tctl create [<flags>] [<filename>]

Flags:

FlagDefaultDescription
-f, --[no-]forcefalseOverwrite the resource if already exists

Arguments:

ArgumentDefaultDescription
filenamenone (optional)resource definition file, empty for stdin

tctl db ls

List all databases registered with the cluster.

Usage:

tctl db ls [<flags>] [<labels>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', 'json', or 'yaml'
--querynoneQuery by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"')
--searchnoneList of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase")
-v, --[no-]verbosefalseVerbose table output, shows full label output

Arguments:

ArgumentDefaultDescription
labelsnone (optional)List of comma separated labels to filter by labels (e.g. key1=value1,key2=value2)

tctl desktop bootstrap

Generate a PowerShell script to bootstrap Active Directory.

Usage:

tctl desktop bootstrap

tctl desktop ls

List all desktops registered with the cluster.

Usage:

tctl desktop ls [<flags>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', 'json' or 'yaml'
-v, --[no-]verbosefalseVerbose table output, shows full label output

tctl devices add

Register managed devices.

Usage:

tctl devices add [<flags>]

Flags:

FlagDefaultDescription
--asset-tagnoneInventory identifier for the device (e.g., Mac serial number)
--enroll-ttlnoneTime duration for the enrollment token
--formattextOutput format, 'text', 'json', or 'yaml'
--[no-]current-devicefalseRegisters the current device. Overrides --os and --asset-tag.
--[no-]enrollfalseIf set, creates a device enrollment token
--osnoneOperating system

tctl devices enroll

Creates a new device enrollment token.

Usage:

tctl devices enroll [<flags>]

Flags:

FlagDefaultDescription
--asset-tagnoneInventory identifier for the device
--device-idnoneDevice identifier
--[no-]current-devicefalseEnrolls the current device. Overrides --device-id and --asset-tag.
--ttlnoneTime duration for the enrollment token

tctl devices lock

Locks a device.

Usage:

tctl devices lock [<flags>]

Flags:

FlagDefaultDescription
--asset-tagnoneInventory identifier for the device
--device-idnoneDevice identifier
--expiresnoneTime point (RFC3339) when the lock expires
--messagenoneMessage to display to locked-out users
--[no-]current-devicefalseLocks the current device. Overrides --device-id and --asset-tag.
--ttlnoneTime duration after which the lock expires

tctl devices ls

Lists managed devices.

Usage:

tctl devices ls [<flags>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', 'json', or 'yaml'

tctl devices rm

Removes a managed device.

Usage:

tctl devices rm [<flags>]

Flags:

FlagDefaultDescription
--asset-tagnoneInventory identifier for the device
--device-idnoneDevice identifier
--[no-]current-devicefalseRemoves the current device. Overrides --device-id and --asset-tag.

tctl edit

Edit a Teleport resource.

Usage:

tctl edit [<resource type/resource name>]

Arguments:

ArgumentDefaultDescription
resource type/resource namenone (optional)Resource to update, e.g., "user/myuser"

tctl get

Print a YAML declaration of various Teleport resources.

Usage:

tctl get [<flags>] <resources>

Flags:

FlagDefaultDescription
--formatyamlOutput format: 'yaml', 'json' or 'text'
--[no-]with-secretsfalseInclude secrets in resources like certificate authorities or OIDC connectors
-v, --[no-]verbosefalseVerbose table output, shows full label output

Arguments:

ArgumentDefaultDescription
resourcesnone (required)Resource spec: 'type/[name][,...]' or 'all'

tctl help

Show help.

Usage:

tctl help [<command>...]

Arguments:

ArgumentDefaultDescription
commandnone (optional)Show help on command.

tctl idp saml test-attribute-mapping

Test expression evaluation of attribute mapping.

Usage:

tctl idp saml test-attribute-mapping --users=USERS --sp=SP [<flags>]

Flags:

FlagDefaultDescription
--formatnoneoutput format, 'yaml' or 'json'
--spnonename of a file containing service provider spec
-u, --usersnoneusername or name of a file containing user spec

tctl inventory list

List Teleport instance inventory.

Usage:

tctl inventory list [<flags>]

Flags:

FlagDefaultDescription
--exact-versionnoneFilter output by teleport version
--formattextOutput format, 'text' or 'json'
--newer-thannoneFilter for newer teleport versions
--older-thannoneFilter for older teleport versions
--servicesnoneFilter output by service (node,kube,proxy,etc)
--update-groupnoneFilter output by update group
--upgradernoneFilter output by upgrader (kube,unit,none)

tctl inventory ping

Ping locally connected instance.

Usage:

tctl inventory ping <server-id>

Arguments:

ArgumentDefaultDescription
server-idnone (required)ID of target server

tctl inventory status

Show inventory status summary.

Usage:

tctl inventory status [<flags>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text' or 'json'
--[no-]connectedfalseShow locally connected instances summary

tctl kube ls

List all Kubernetes clusters registered with the cluster.

Usage:

tctl kube ls [<flags>] [<labels>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', 'json', or 'yaml'
--querynoneQuery by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"')
--searchnoneList of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase")
-v, --[no-]verbosefalseVerbose table output, shows full label output

Arguments:

ArgumentDefaultDescription
labelsnone (optional)List of comma separated labels to filter by labels (e.g. key1=value1,key2=value2)

tctl list-kinds

Lists all resource kinds supported by this tctl version.

Usage:

tctl list-kinds [<flags>]

Flags:

FlagDefaultDescription
--[no-]widefalseDo not truncate the Description column, even if it exceeds terminal width

tctl lock

Create a new lock.

Usage:

tctl lock [<flags>]

Flags:

FlagDefaultDescription
--access-requestnoneUUID of an Access Request to disable.
--bot-instance-idnoneUUID of a bot instance to disable
--devicenoneUUID of a trusted device to disable.
--expiresnoneTime point (RFC3339) when the lock expires.
--join-tokennoneBot join token name to disable
--loginnoneName of a local UNIX user to disable.
--messagenoneMessage to display to locked-out users.
--mfa-devicenoneUUID of a user MFA device to disable.
--rolenoneName of a Teleport role to disable.
--server-idnoneUUID of a Teleport server to disable.
--ttlnoneTime duration after which the lock expires.
--usernoneName of a Teleport user to disable.
--windows-desktopnoneName of a Windows desktop to disable.

tctl login_rule test

Test the parsing and evaluation of login rules.

Usage:

tctl login_rule test [<flags>] [<traits-file>]

Flags:

FlagDefaultDescription
--formatyamlOutput format: 'yaml' or 'json'
--[no-]load-from-clusterfalseload existing login rules from the connected Teleport cluster
--resource-filenonelogin rule resource file name (YAML or JSON)

Arguments:

ArgumentDefaultDescription
traits-filenone (optional)input user traits file name (YAML or JSON), empty for stdin

tctl nodes add

Generate a node invitation token.

Usage:

tctl nodes add [<flags>]

Flags:

FlagDefaultDescription
--rolesnodeComma-separated list of roles for the new node to assume [node]
--tokennoneOverride the default random generated token with a specified value
--ttl30m0sTime to live for a generated token

tctl nodes ls

List all active SSH nodes within the cluster.

Usage:

tctl nodes ls [<flags>] [<labels>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', or 'yaml'
--querynoneQuery by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"')
--searchnoneList of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase")
-v, --[no-]verbosefalseVerbose table output, shows full label output

Arguments:

ArgumentDefaultDescription
labelsnone (optional)List of comma separated labels to filter by labels (e.g. key1=value1,key2=value2)

tctl notifications create

Create a cluster notification.

Usage:

tctl notifications create --title=TITLE --content=CONTENT [<flags>]

Flags:

FlagDefaultDescription
--contentnoneSet the notification's content.
--labelsnoneList of labels to attach to the notification. For example: key1=value1,key2=value2.
--[no-]require-all-rolesfalseSet whether this notification should target users who have all of the provided roles.
--[no-]warningfalseSet whether this notification is a warning notification.
--rolesnoneTarget a specific set of roles. By default, this will target all users with any of the provided roles, use --require-all-roles to exclusively target users with all of them.
-t, --titlenoneSet the notification's title.
--ttl30dTime duration after which the notification expires (default 30 days).
--usernoneTarget a specific user.

tctl notifications ls

List notifications which were manually created using tctl notifications create. By default, this will list notifications capable of targeting multiple users, such as role-based ones. To list notifications directed only at a specific user, use the --user flag. To include notifications generated by Teleport, use --all.

Usage:

tctl notifications ls [<flags>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'yaml', 'json', or 'text'
--labelsnoneList of comma separated labels to filter by labels (e.g. key1=value1,key2=value2)
--[no-]allfalseSet whether all notifications should be included, including those generated by Teleport, as opposed to solely those created using tctl notifications create.
--usernoneSet which user to list user-specific notifications for, or leave empty to list your own.

tctl notifications rm

Remove a cluster notification.

Usage:

tctl notifications rm [<flags>] <id>

Flags:

FlagDefaultDescription
--usernoneThe user the notification to remove belongs to, if any.

Arguments:

ArgumentDefaultDescription
idnone (required)The ID of the notification to remove.

tctl plugins cleanup

Cleans up the given plugin type.

Usage:

tctl plugins cleanup [<flags>] <type>

Flags:

FlagDefaultDescription
--[no-]dry-runtrueDry run the cleanup command. Dry run defaults to on.

Arguments:

ArgumentDefaultDescription
typenone (required)The type of plugin to clean up. Only supports Okta at present.

tctl plugins delete

Remove a plugin instance.

Usage:

tctl plugins delete [<name>]

Arguments:

ArgumentDefaultDescription
namenone (optional)The name of the SCIM plugin resource to delete

tctl plugins edit awsic

Edit an AWS IAM Identity Center integration's settings.

Usage:

tctl plugins edit awsic [<flags>]

Flags:

FlagDefaultDescription
--plugin-nameaws-identity-centerName of the AWS Identity Center integration instance to update. Defaults to aws-identity-center.
--roles-sync-modenoneControl account-assignment role creation. ALL creates roles for all possible account assignments. NONE creates no roles, and also implies a totally-exclusive group import filter.

tctl plugins install awsic

Install an AWS IAM Identity Center integration.

Usage:

tctl plugins install awsic --access-list-default-owner=ACCESS-LIST-DEFAULT-OWNER --scim-url=SCIM-URL --scim-token=SCIM-TOKEN --instance-region=INSTANCE-REGION --instance-arn=INSTANCE-ARN [<flags>]

Flags:

FlagDefaultDescription
--access-list-default-ownernoneTeleport user to set as default owner for the imported Access Lists. Multiple flags allowed.
--account-idnoneAdd AWS Account to account import list by ID. All AWS accounts will be imported if no items are added to account import list.
--account-namenoneAdd AWS Account to account import list by name. Can be a glob, or enclosed in ^$ to specify a regular expression. All AWS accounts will be imported if no items are added to account import list.
--assume-role-arnnoneARN of a role that the system credential should assume.
--exclude-account-idnoneExclude AWS account from import list by ID.
--exclude-account-namenoneExclude AWS account from import list by name. Can be a glob or a regular expression (enclosed in ^$).
--exclude-group-namenoneExclude AWS group from import list by name. Can be a glob or a regular expression (enclosed in ^$).
--group-namenoneAdd AWS group to group import list by name. Can be a glob, or enclosed in ^$ to specify a regular expression. If no filters are supplied then all AWS groups will be imported.
--instance-arnnoneAWS Identity center instance ARN
--instance-regionnoneAWS Identity Center instance region
--[no-]force-scim-urlfalseUse the provided SCIM provisioning endpoint even if it fails scim endpoint validation
--[no-]use-system-credentialstrueUses system credentials instead of OIDC.
--oidc-integrationnoneName of the Teleport OIDC integration to use when authenticating with AWS. Must be supplied when --no-use-system-credentials is set.
--roles-sync-modeALLControl account-assignment role creation. ALL creates Teleport Roles for all possible account assignments. NONE creates no Teleport Roles, and also implies a totally-exclusive group import filter.
--scim-tokennoneAWS Identify Center SCIM provisioning token.
--scim-urlnoneAWS Identity Center SCIM provisioning endpoint
--user-labelnoneAdd user label filter, in the form of a comma-separated list of "name=value" pairs. If no label filters are supplied, all Teleport users will be provisioned to Identity Center
--user-originnoneShorthand for "--user-label teleport.dev/origin=ORIGIN"

tctl plugins install entraid

Install an Microsoft Entra ID integration.

Usage:

tctl plugins install entraid --default-owner=DEFAULT-OWNER [<flags>]

Flags:

FlagDefaultDescription
--auth-connector-nameentra-id-defaultName of the SAML connector resource to create
--default-ownernoneList of Teleport users that are default owners for the imported Access Lists. Multiple flags allowed.
--exclude-group-idnoneExclude group matching the specified group ID.
--exclude-group-namenoneExclude groups matching the specified group name regex.
-f, --[no-]forcefalseProceed with installation even if plugin already exists.
--group-idnoneInclude group matching the specified group ID.
--group-namenoneInclude groups matching the specified group name regex.
-m, --[no-]manual-setupfalseManually set up the EntraID integration.
--nameentra-idName of the plugin resource to create
--[no-]access-graphtrueEnables Access Graph cache build.
--[no-]use-system-credentialsfalseUses system credentials instead of OIDC.

tctl plugins install github

Install an Access Graph Github integration.

Usage:

tctl plugins install github [<flags>]

Flags:

FlagDefaultDescription
--start-date2025-12-30Start date for the audit log ingest in the YYYY-MM-DD format.

tctl plugins install netiq

Install an Access Graph NetIQ integration.

Usage:

tctl plugins install netiq [<flags>]

Flags:

FlagDefaultDescription
--[no-]insecure-skip-verifyfalseSkip verification of the NetIQ server's SSL certificate.

tctl plugins install okta

Install an Okta integration.

Usage:

tctl plugins install okta --org=ORG --saml-connector=SAML-CONNECTOR [<flags>]

Flags:

FlagDefaultDescription
-a, --app-filternoneAdd an app filter. Supports globbing by default. Enclose in ^pattern$ for full regex support.
--api-tokennoneOkta API token for the plugin to use
--app-idnoneOkta ID of the APP used for SSO via SAML
-g, --group-filternoneAdd a group filter. Supports globbing by default. Enclose in ^pattern$ for full regex support.
--nameoktaName of the plugin resource to create
--[no-]accesslist-synctrueEnable group to Access List synchronization
--[no-]appgroup-synctrueEnable Okta Applications and Groups sync
--[no-]assign-default-rolestrueIf user synchronization is enabled, assign the builtin okta-requester role to synchronized users
--[no-]scimfalseEnable SCIM Okta integration
--[no-]system-logs-exportfalseEnables the Teleport Identity Security SIEM integration for Okta.
--[no-]users-synctrueEnable user synchronization
-o, --ownernoneAdd default owners for synced Access Lists
--orgnoneURL of Okta organization
--saml-connectornoneSAML connector used for Okta SSO login.

tctl plugins install scim

Install a Teleport SCIM plugin.

Usage:

tctl plugins install scim --connector=CONNECTOR [<flags>]

Flags:

FlagDefaultDescription
--authoauthPlugin Authentication type.
--connectornoneName of the Teleport connector to use.
--connector-typenoneType of the Teleport connector to use.

tctl plugins rotate awsic

Rotate the AWS Identity Center SCIM bearer token.

Usage:

tctl plugins rotate awsic [<flags>] TOKEN

Flags:

FlagDefaultDescription
--[no-]validate-tokentrueValidate that the supplied token is valid for the configured downstream SCIM service
--plugin-nameaws-identity-centerName of the AWSIC plugin instance to update. Defaults to aws-identity-center.

Arguments:

ArgumentDefaultDescription
tokennone (required)The new SCIM bearer token.

tctl proxy ls

Lists proxies connected to the cluster.

Usage:

tctl proxy ls [<flags>]

Flags:

FlagDefaultDescription
--formatyamlOutput format: 'yaml', 'json' or 'text'

tctl recordings download

Download session recordings.

Usage:

tctl recordings download [<flags>] <session-id>

Flags:

FlagDefaultDescription
-o, --output-dir.Directory to download session recordings to.

Arguments:

ArgumentDefaultDescription
session-idnone (required)ID of the session to download recordings for.

tctl recordings encryption complete-rotation

Completes an in-progress encryption key rotation.

Usage:

tctl recordings encryption complete-rotation

tctl recordings encryption rollback-rotation

Rolls back an in-progress encryption key rotation.

Usage:

tctl recordings encryption rollback-rotation

tctl recordings encryption rotate

Rotate encryption keys used for encrypting session recordings.

Usage:

tctl recordings encryption rotate

tctl recordings encryption status

Show current rotation status.

Usage:

tctl recordings encryption status [<flags>]

Flags:

FlagDefaultDescription
--formattextFormat output (text, json, yaml).. Defaults to 'text'.

tctl recordings ls

List recorded sessions.

Usage:

tctl recordings ls [<flags>]

Flags:

FlagDefaultDescription
--formattextFormat output (text, json, yaml).. Defaults to 'text'.
--from-utcnoneStart of time range in which recordings are listed. Format 2006-01-02. Defaults to 24 hours ago.
--lastnoneDuration into the past from which session recordings should be listed. Format 5h30m40s
--limit50Maximum number of recordings to show. Default 50.
--to-utcnoneEnd of time range in which recordings are listed. Format 2006-01-02. Defaults to current time.

tctl requests approve

Approve pending Access Request.

Usage:

tctl requests approve [<flags>] <request-id>

Flags:

FlagDefaultDescription
--annotationsnoneResolution attributes <key>=<val>[,...]
--assume-start-timenoneSets time roles can be assumed by requestor (RFC3339 e.g 2023-12-12T23:20:50.52Z)
--delegatornoneOptional delegating identity
--reasonnoneOptional reason message
--rolesnoneOverride requested roles <role>[,...]

Arguments:

ArgumentDefaultDescription
request-idnone (required)ID of target request(s)

tctl requests create

Create pending Access Request.

Usage:

tctl requests create [<flags>] <username>

Flags:

FlagDefaultDescription
--[no-]dry-runfalseDon't actually generate the Access Request
--reasonnoneOptional reason message
--resourcenoneResource ID to be requested
--rolesnoneRoles to be requested

Arguments:

ArgumentDefaultDescription
usernamenone (required)Name of target user

tctl requests deny

Deny pending Access Request.

Usage:

tctl requests deny [<flags>] <request-id>

Flags:

FlagDefaultDescription
--annotationsnoneResolution annotations <key>=<val>[,...]
--delegatornoneOptional delegating identity
--reasonnoneOptional reason message

Arguments:

ArgumentDefaultDescription
request-idnone (required)ID of target request(s)

tctl requests get

Show Access Request by ID.

Usage:

tctl requests get <request-id>

Arguments:

ArgumentDefaultDescription
request-idnone (required)ID of target request(s)

tctl requests ls

Show active Access Requests.

Usage:

tctl requests ls [<flags>]

Flags:

FlagDefaultDescription
--sort-indexcreatedRequest sort index, 'created' or 'state'
--sort-orderdescendingRequest sort order, 'ascending' or 'descending'

tctl requests review

Review an Access Request.

Usage:

tctl requests review --author=AUTHOR [<flags>] <request-id>

Flags:

FlagDefaultDescription
--authornoneUsername of reviewer
--[no-]approvefalseReview proposes approval
--[no-]denyfalseReview proposes denial

Arguments:

ArgumentDefaultDescription
request-idnone (required)ID of target request

tctl requests rm

Delete an Access Request.

Usage:

tctl requests rm [<flags>] <request-id>

Flags:

FlagDefaultDescription
-f, --[no-]forcefalseForce the deletion of an active Access Request

Arguments:

ArgumentDefaultDescription
request-idnone (required)ID of target request(s)

tctl rm

Delete a resource.

Usage:

tctl rm [<resource type/resource name>]

Arguments:

ArgumentDefaultDescription
resource type/resource namenone (optional)Resource to delete
<resource type> Type of a resource [for example: connector,user,cluster,token]
<resource name> Resource name to delete

Examples: $ tctl rm role/devs $ tctl rm cluster/main|

tctl saml export

Export a SAML signing key in .crt format.

Usage:

tctl saml export <connector_name>

Arguments:

ArgumentDefaultDescription
connector_namenone (required)name of the SAML connector to export the key from

tctl scoped status

Show the status of scoped resources

Usage:

tctl scoped status

tctl scoped tokens add

Create a scoped invitation token.

Usage:

tctl scoped tokens add --type=TYPE [<flags>]

Flags:

FlagDefaultDescription
--assign-scopenoneScope that should be applied to resources provisioned by this token
--formatnoneOutput format, 'text', 'json', or 'yaml'
--namenoneOverride the default, randomly generated token name with a specified name
--scopenoneScope assigned to the token itself
--ttl30m0sSet expiration time for token, default is 30 minutes
--typenoneType(s) of token to add, e.g. --type=node

tctl scoped tokens ls

List invitation tokens.

Usage:

tctl scoped tokens ls [<flags>]

Flags:

FlagDefaultDescription
--formatnoneOutput format, 'text', 'json' or 'yaml'
--[no-]with-secretsfalseDo not redact join tokens

tctl scoped tokens rm

Delete/revoke a scoped invitation token.

Usage:

tctl scoped tokens rm [<token>]

Arguments:

ArgumentDefaultDescription
tokennone (optional)Token to delete

tctl sso configure github

Configure GitHub auth connector.

Usage:

tctl sso configure github --teams-to-roles=org,team,role1,role2,... --id=ID --secret=SECRET [<flags>]

Flags:

FlagDefaultDescription
--api-endpoint-urlhttps://api.github.comAPI endpoint URL for GitHub instance.
--displaynoneSets the connector display name.
--endpoint-urlhttps://github.comEndpoint URL for GitHub instance.
--idnoneGitHub app client ID.
-n, --namegithubConnector name.
--[no-]ignore-missing-rolesfalseIgnore missing roles referenced in --teams-to-roles.
--redirect-urlnoneAuthorization callback URL.
-r, --teams-to-rolesnoneSets teams-to-roles mapping using format 'organization,name,role1,role2,...'. Repeatable.
--secretnoneGitHub app client secret.

tctl sso configure oidc

Configure OIDC auth connector, optionally using a preset. Available presets: [google gitlab okta].

Usage:

tctl sso configure oidc --claims-to-roles=name,value,role1,role2,... --secret=SECRET [<flags>]

Flags:

FlagDefaultDescription
--acrnoneAuthentication Context Class Reference values.
--displaynoneSets the connector display name.
--google-accnoneGoogle only. String containing Google service account credentials.
--google-acc-urinoneGoogle only. URI pointing at service account credentials. Example: file:///var/lib/teleport/gworkspace-creds.json.
--google-adminnoneGoogle only. Email of a Google admin to impersonate.
--google-idnoneShorthand for setting the --id flag to <GOOGLE_WORKSPACE_CLIENT_ID>.apps.googleusercontent.com
--idnoneOIDC app client ID.
--issuer-urlnoneIssuer URL.
-n, --namenoneConnector name. Required, unless implied from preset.
--[no-]google-legacyfalseGoogle only. Flag to select groups with direct membership filtered by domain (legacy behavior). Disabled by default. More info: https://goteleport.com/docs/enterprise/sso/google-workspace/#how-teleport-uses-google-workspace-apis
--[no-]ignore-missing-rolesfalseIgnore missing roles referenced in --claims-to-roles.
-p, --presetnonePreset. One of: [google gitlab okta]
--promptnoneOptional OIDC prompt. Example values: none, select_account, login, consent.
--providernoneSets the external identity provider type to enable IdP specific workarounds. Examples: ping, adfs, netiq, okta.
-r, --claims-to-rolesnoneSets claim-to-roles mapping using format 'claim_name,claim_value,role1,role2,...'. Repeatable.
--redirect-urlnoneAuthorization callback URL(s). Each repetition of the flag declares one redirectURL.
--scopenoneScope specifies additional scopes set by provider. Each repetition of the flag declares one scope. Examples: email, groups, openid.
--secretnoneOIDC app client secret.

tctl sso configure saml

Configure SAML auth connector, optionally using a preset. Available presets: [okta onelogin ad adfs].

Usage:

tctl sso configure saml --attributes-to-roles=ATTRIBUTES-TO-ROLES [<flags>]

Flags:

FlagDefaultDescription
--acsnoneAssertionConsumerService is a URL for assertion consumer service on the service provider (Teleport's side).
--assertion-cert-filenoneA file with cert used for securing SAML assertions. Must be used together with --assertion-key-file.
--assertion-key-filenoneA file with key used for securing SAML assertions. Must be used together with --assertion-cert-file.
--audiencenoneAudience uniquely identifies our service provider.
--certnoneCert file with with the IdP certificate PEM. IdP signs <Response> responses using this certificate.
--displaynoneSets the connector display name.
-e, --entity-descriptornoneSet the Entity Descriptor. Valid values: file, URL, XML content. Supplies configuration parameters as single XML instead of individual elements.
--issuernoneIssuer is the identity provider issuer.
-n, --namenoneConnector name. Required, unless implied from preset.
--[no-]allow-idp-initiatedfalseAllow the IdP to initiate the SSO flow.
--[no-]ignore-missing-rolesfalseIgnore missing roles referenced in --attributes-to-roles.
-p, --presetnonePreset. One of: [okta onelogin ad adfs]
--providernoneSets the external identity provider type. Examples: ping, adfs.
-r, --attributes-to-rolesnoneSets attribute-to-role mapping using format 'attr_name,attr_value,role1,role2,...'. Repeatable.
--service-provider-issuernoneServiceProviderIssuer is the issuer of the service provider (Teleport).
--signing-cert-filenoneA file with request certificate. Must be used together with --signing-key-file.
--signing-key-filenoneA file with request signing key. Must be used together with --signing-cert-file.
--ssononeSSO is the URL of the identity provider's SSO service.

tctl sso test

Perform end-to-end test of SSO flow using provided auth connector definition.

Usage:

tctl sso test [<flags>] [<filename>]

Flags:

FlagDefaultDescription
--browsernoneSet to 'none' to suppress browser opening on login.

Arguments:

ArgumentDefaultDescription
filenamenone (optional)Connector resource definition filename. Empty for stdin.

tctl stable-unix-users ls

List the stable UNIX users currently persisted in the cluster.

Usage:

tctl stable-unix-users ls [<flags>]

Flags:

FlagDefaultDescription
--formattextOutput format, 'text', or 'json'

tctl status

Report cluster status.

Usage:

tctl status

tctl terraform env

Obtain certificates and load them into environments variables. This creates a temporary MachineID bot.

Usage:

tctl terraform env [<flags>]

Flags:

FlagDefaultDescription
--bot-ttl1hTime-to-live of the Bot resource. The bot will be removed after this period. Defaults to [1h]
--resource-prefixtctl-terraform-env-Resource prefix to use when creating the Terraform role and bots. Defaults to [tctl-terraform-env-]
--rolenoneRole used by Terraform. The role must already exist in Teleport. When not specified, uses the default role "terraform-provider"

tctl tokens add

Create a invitation token.

Usage:

tctl tokens add --type=TYPE [<flags>]

Flags:

FlagDefaultDescription
--app-nameexample-appName of the application to add
--app-urihttp://localhost:8080URI of the application to add
--db-namenoneName of the database to add
--db-protocolnoneDatabase protocol to use. Supported are: [postgres mysql mongodb oracle cockroachdb redis snowflake sqlserver cassandra elasticsearch opensearch dynamodb clickhouse clickhouse-http spanner]
--db-urinoneAddress the database is reachable at
--formatnoneOutput format, 'text', 'json', or 'yaml'
--labelsnoneSet token labels, e.g. env=prod,region=us-west
--ttl30m0sSet expiration time for token, default is 30 minutes
--typenoneType(s) of token to add, e.g. --type=node,app,db,proxy,etc
--valuenoneOverride the default random generated token with a specified value

tctl tokens configure-kube

Creates a token allowing workload from the Kubernetes cluster to join the Teleport cluster.

Usage:

tctl tokens configure-kube --service-account=SERVICE-ACCOUNT [<flags>]

Flags:

FlagDefaultDescription
--botnoneName of the the bot that this token will grant access to. When set, creates a bot token. Overrides --type
--cluster-namenoneName of the Kubernetes cluster. When not set, defaults to the context name.
--contextnoneKubernetes context to use. When not set, defaults to the active context.
-f, --[no-]forcefalseForce the token creation, even if the token already exists
-j, --join-withautoKubernetes joining type, possible values are 'oidc', 'jwks', and 'auto'. See https://goteleport.com/docs/reference/join-methods/#kubernetes-kubernetes for more details.
-n, --namespaceteleportNamespace of the Kubernetes Service Account using the token. For 'teleport-kube-agent' and 'tbot' Helm charts, this is release namespace.
-o, --out./values.yamlPath of the output file.
-s, --service-accountnoneName of the Kubernetes Service Account using the token. For 'teleport-kube-agent' and 'tbot' Helm charts, this is the release name.
--token-namenoneOptional name of the created join token. When not set, default to '<CLUSTER_NAME>(-<BOT_NAME>)'
--typekube,app,discoveryType(s) of token to add, e.g. --type=kube,app,db,discovery,proxy,etc
--update-groupnoneOptional update group used for version detection and agent updater configuration

tctl tokens ls

List node and user invitation tokens.

Usage:

tctl tokens ls [<flags>]

Flags:

FlagDefaultDescription
--formatnoneOutput format, 'text', 'json' or 'yaml'
--labelsnoneList of comma separated labels to filter by labels (e.g. key1=value1,key2=value2)
--[no-]with-secretsfalseDo not redact join tokens

tctl tokens rm

Delete/revoke an invitation token.

Usage:

tctl tokens rm [<token>]

Arguments:

ArgumentDefaultDescription
tokennone (optional)Token to delete

tctl top

Report diagnostic information.

Usage:

tctl top [<diag-addr>] [<refresh>]

Arguments:

ArgumentDefaultDescription
diag-addrnone (optional)Diagnostic HTTP URL
refresh5s (optional)Refresh period

tctl update

Update resource fields.

Usage:

tctl update [<flags>] [<resource type/resource name>]

Flags:

FlagDefaultDescription
--set-labelsnoneSet labels
--set-ttlnoneSet TTL

Arguments:

ArgumentDefaultDescription
resource type/resource namenone (optional)Resource to update
<resource type> Type of a resource [for example: rc]
<resource name> Resource name to update

Example: $ tctl update rc/remote|

tctl users add

Generate a user invitation token [Teleport local users only].

Usage:

tctl users add --roles=ROLES [<flags>] <account>

Flags:

FlagDefaultDescription
--aws-role-arnsnoneList of allowed AWS role ARNs for the new user
--azure-identitiesnoneList of allowed Azure identities for the new user
--db-namesnoneList of allowed database names for the new user
--db-rolesnoneList of database roles for automatic database user provisioning
--db-usersnoneList of allowed database users for the new user
--default-relay-addrnoneRelay address that clients should use by default
--gcp-service-accountsnoneList of allowed GCP service accounts for the new user
--host-user-gidnoneGID for auto provisioned host users to use
--host-user-uidnoneUID for auto provisioned host users to use
--kubernetes-groupsnoneList of allowed Kubernetes groups for the new user
--kubernetes-usersnoneList of allowed Kubernetes users for the new user
--loginsnoneList of allowed SSH logins for the new user
--mcp-toolsnoneList of allowed MCP tools for the new user
--rolesnoneList of roles for the new user to assume
--ttl1h0m0sSet expiration time for token, default is 1h0m0s, maximum is 48h0m0s
--windows-loginsnoneList of allowed Windows logins for the new user

Arguments:

ArgumentDefaultDescription
accountnone (required)Teleport user account name

tctl users ls

Lists all user accounts.

Usage:

tctl users ls

tctl users reset

Reset user password and generate a new token [Teleport local users only].

Usage:

tctl users reset [<flags>] <account>

Flags:

FlagDefaultDescription
--ttl8h0m0sSet expiration time for token, default is 8h0m0s, maximum is 24h0m0s

Arguments:

ArgumentDefaultDescription
accountnone (required)Teleport user account name

tctl users rm

Deletes user accounts.

Usage:

tctl users rm <logins>

Arguments:

ArgumentDefaultDescription
loginsnone (required)Comma-separated list of user logins to delete

tctl users update

Update user account.

Usage:

tctl users update [<flags>] <account>

Flags:

FlagDefaultDescription
--set-aws-role-arnsnoneList of allowed AWS role ARNs for the user, replaces current AWS role ARNs
--set-azure-identitiesnoneList of allowed Azure identities for the user, replaces current Azure identities
--set-db-namesnoneList of allowed database names for the user, replaces current database names
--set-db-rolesnoneList of allowed database roles for automatic database user provisioning, replaces current database roles
--set-db-usersnoneList of allowed database users for the user, replaces current database users
--set-default-relay-addrnoneRelay address that clients should use by default. Value can be reset by providing an empty string
--set-gcp-service-accountsnoneList of allowed GCP service accounts for the user, replaces current service accounts
--set-host-user-gidnoneGID for auto provisioned host users to use. Value can be reset by providing an empty string
--set-host-user-uidnoneUID for auto provisioned host users to use. Value can be reset by providing an empty string
--set-kubernetes-groupsnoneList of allowed Kubernetes groups for the user, replaces current Kubernetes groups
--set-kubernetes-usersnoneList of allowed Kubernetes users for the user, replaces current Kubernetes users
--set-loginsnoneList of allowed SSH logins for the user, replaces current logins
--set-mcp-toolsnoneList of allowed MCP tools for the user, replaces current allowed MCP tools.
--set-rolesnoneList of roles for the user to assume, replaces current roles
--set-windows-loginsnoneList of allowed Windows logins for the user, replaces current Windows logins

Arguments:

ArgumentDefaultDescription
accountnone (required)Teleport user account name

tctl version

Print the version of your tctl binary.

Usage:

tctl version

tctl workload-identity ls

List workload identity configurations.

Usage:

tctl workload-identity ls

tctl workload-identity revocations add

Create a new revocation.

Usage:

tctl workload-identity revocations add --serial=SERIAL --type=TYPE --reason=REASON [<flags>]

Flags:

FlagDefaultDescription
--expires-atnoneTime that the revocation should expire, usually this should match the expiry time of the credential. This should be specified using RFC3339 e.g '2024-02-05T15:04:00Z'. If unspecified, the time 1 week from now is used.
--reasonnoneReason for revocation.
--serialnoneSerial number of the certificate to revoke.
--typenoneType of credential to revoke (x509)

tctl workload-identity revocations crl

Fetch the signed CRL for existing revocations.

Usage:

tctl workload-identity revocations crl [<flags>]

Flags:

FlagDefaultDescription
--[no-]followfalseFollow the stream of CRL updates.
--outnonePath to write the CRL as a file to. If unspecified, STDOUT will be used.

tctl workload-identity revocations ls

List revocations.

Usage:

tctl workload-identity revocations ls

tctl workload-identity revocations rm

Delete a revocation.

Usage:

tctl workload-identity revocations rm --serial=SERIAL --type=TYPE

Flags:

FlagDefaultDescription
--serialnoneSerial number of the certificate to remove the revocation for.
--typenoneType of credential to remove the revocation for (x509).

tctl workload-identity rm

Delete a workload identity configuration.

Usage:

tctl workload-identity rm <name>

Arguments:

ArgumentDefaultDescription
namenone (required)Name of the workload identity configuration to delete.

tctl workload-identity x509-issuer-overrides create

Create an issuer override from the given certificate chains.

Usage:

tctl workload-identity x509-issuer-overrides create [<flags>] <fullchain.pem>...

Flags:

FlagDefaultDescription
-f, --[no-]forcefalseOverwrite the existing override if it exists.
--namedefaultThe name of the override resource to write.
--[no-]dry-runfalsePrint the workload_identity_x509_issuer_override that would have been created, without actually creating it.

Arguments:

ArgumentDefaultDescription
fullchain.pemnone (required)PEM files containing an issuer and its optional chain each.

tctl workload-identity x509-issuer-overrides sign-csrs

Sign CSRs with the SPIFFE X.509 CA keys.

Usage:

tctl workload-identity x509-issuer-overrides sign-csrs [<flags>]

Flags:

FlagDefaultDescription
--creation-modesameHow the attributes of the issuer are encoded in the CSR: "same", "empty".
-f, --[no-]forcefalseAttempt to sign as many CSRs as possible even in the presence of errors.