tctl Reference
This guide provides a comprehensive list of commands, arguments, and flags for tctl.
tctl is a CLI tool that allows a cluster administrator to manage all resources
in a cluster, including nodes, users, tokens, certificates, and devices.
tctl can also be used to modify the dynamic configuration of the cluster,
such as creating new user roles or connecting to trusted clusters.
For a conceptual overview of tctl, see Getting Started with
tctl.
tctl [<flags>] <command> [<args> ...]
Global flags:
| Flag | Default | Description |
|---|---|---|
--auth-server | none | Attempts to connect to specific auth/proxy address(es) instead of local auth [127.0.0.1:3025] |
-c, --config | none | Path 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-]debug | false | Enable verbose logging to stderr |
-i, --identity | none | Path to an identity file. Must be provided to make remote connections to auth. An identity file can be exported with 'tctl auth sign' |
--[no-]insecure | false | When 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:
| Variable | Default | Description |
|---|---|---|
TELEPORT_AUTH_SERVER | none | Attempts to connect to specific auth/proxy address(es) instead of local auth [127.0.0.1:3025] |
TELEPORT_IDENTITY_FILE | none | Path 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:
| Flag | Default | Description |
|---|---|---|
--format | yaml | Output format, 'yaml', 'json', or 'text' |
Arguments:
| Argument | Default | Description |
|---|---|---|
| access-list-name | none (required) | The Access List name. |
tctl acl ls
List cluster Access Lists.
Usage:
tctl acl ls [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | yaml | Output 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:
| Flag | Default | Description |
|---|---|---|
--kind | user | Access list member kind, 'user' or 'list' |
Arguments:
| Argument | Default | Description |
|---|---|---|
| access-list-name | none (required) | The Access List name. |
| expires | none (optional) | When the user's access expires (must be in RFC3339). Defaults to the expiration time of the Access List. |
| reason | none (optional) | The reason the user has been added to the Access List. Defaults to empty. |
| user | none (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:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format 'json', or 'text' |
Arguments:
| Argument | Default | Description |
|---|---|---|
| access-list-name | none (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:
| Argument | Default | Description |
|---|---|---|
| access-list-name | none (required) | The Access List name. |
| user | none (required) | The user to remove from the Access List. |
tctl alerts ack
Acknowledge cluster alerts.
Usage:
tctl alerts ack [<flags>] <id>
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', 'json', or 'yaml' |
--[no-]clear | false | Clear the acknowledgment for the cluster alert. |
--reason | none | The reason for acknowledging the cluster alert. |
--ttl | none | Time duration to acknowledge the cluster alert for. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| id | none (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:
| Flag | Default | Description |
|---|---|---|
--labels | none | List of labels to attach to the alert. For example: key1=value1,key2=value2. |
--severity | low | Severity of the alert (low, medium, or high). |
--ttl | none | Time duration after which the alert expires (default 24h). |
Arguments:
| Argument | Default | Description |
|---|---|---|
| message | none (required) | Alert body message. |
tctl alerts list
List cluster alerts.
Usage:
tctl alerts list [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', 'json', or 'yaml' |
--labels | none | List of comma separated labels to filter by labels (e.g. key1=value1,key2=value2) |
-v, --[no-]verbose | false | Show detailed alert info, including acknowledged alerts. |
tctl apps ls
List all applications registered with the cluster.
Usage:
tctl apps ls [<flags>] [<labels>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', 'json', or 'yaml' |
--query | none | Query by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"') |
--search | none | List of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase") |
-v, --[no-]verbose | false | Verbose table output, shows full label output |
Arguments:
| Argument | Default | Description |
|---|---|---|
| labels | none (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:
| Flag | Default | Description |
|---|---|---|
--name | none | Audit query name |
Arguments:
| Argument | Default | Description |
|---|---|---|
| query | none (optional) | SQL Query |
tctl audit query exec
Execute audit query.
Usage:
tctl audit query exec [<query>]
Arguments:
| Argument | Default | Description |
|---|---|---|
| query | none (optional) | SQL Query |
tctl audit query get
Get audit query.
Usage:
tctl audit query get <name>
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Argument | Default | Description |
|---|---|---|
| name | none (required) | name of the audit query |
tctl audit report get
Get security report.
Usage:
tctl audit report get <name>
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Argument | Default | Description |
|---|---|---|
| name | none (required) | security report name |
tctl audit report state
Print the state of the security report.
Usage:
tctl audit report state <name>
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Flag | Default | Description |
|---|---|---|
--out | none | If set, writes exported revocation lists to files with the given path prefix |
--type | none | Certificate 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:
| Flag | Default | Description |
|---|---|---|
--compat | none | export certificates compatible with specific version of Teleport |
--fingerprint | none | filter authority by fingerprint |
--integration | none | Name of the integration. Only applies to "github" CAs. |
--[no-]keys | false | if set, will print private keys |
--out | none | If set writes exported authorities to files with the given path prefix |
--type | none | export 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:
| Flag | Default | Description |
|---|---|---|
--format | yaml | Output 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:
| Flag | Default | Description |
|---|---|---|
--grace-period | 30h0m0s | Grace period keeps previous certificate authorities signatures valid, if set to 0 will force users to re-login and nodes to re-register. |
--[no-]interactive | false | Enable interactive mode |
--[no-]manual | false | Activate manual rotation, set rotation phases manually |
--phase | none | Target rotation phase to set, used in manual rotation, one of: init, standby, update_clients, update_servers, rollback |
--type | none | Certificate 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:
| Flag | Default | Description |
|---|---|---|
--app-name | none | Application to generate identity file for. Mutually exclusive with "--db-service". |
--compat | none | OpenSSH compatibility flag |
--db-name | none | Database name placed on the identity file. Only used when "--db-service" is set. |
--db-service | none | Database to generate identity file for. Mutually exclusive with "--app-name". |
--db-user | none | Database user placed on the identity file. Only used when "--db-service" is set. |
--format | file | Identity format: file, openssh, tls, kubernetes, db, windows, mongodb, cockroachdb, redis, snowflake, elasticsearch, cassandra, scylla, oracle. file is the default. |
--host | none | Teleport host name |
--kube-cluster-name | none | Kubernetes cluster to generate identity file for when --format is set to "kubernetes" |
--leaf-cluster | none | Leaf cluster to generate identity file for when --format is set to "kubernetes" |
--[no-]omit-cdp | false | Omit CRL Distribution Points from the cert. Only used when --format is set to "windows" |
--[no-]overwrite | false | Whether to overwrite existing destination files. When not set, user will be prompted before overwriting any existing file. |
--[no-]tar | false | Create a tarball of the resulting certificates and stream to stdout. |
-o, --out | none | Identity output |
--proxy | none | Address of the Teleport proxy. When --format is set to "kubernetes", this address will be set as cluster address in the generated kubeconfig file |
--ttl | 12h0m0s | TTL (time to live) for the generated certificate. |
--user | none | Teleport user name |
--windows-domain | none | Active Directory domain for which this cert is valid. Only used when --format is set to "windows" |
--windows-pki-domain | none | Active Directory domain where CRLs will be located. Only used when --format is set to "windows" |
--windows-sid | none | Optional Security Identifier to embed in the certificate. Only used when --format is set to "windows" |
--windows-user | none | Window 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:
| Argument | Default | Description |
|---|---|---|
| groups | none (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:
| Argument | Default | Description |
|---|---|---|
| groups | none (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:
| Flag | Default | Description |
|---|---|---|
--[no-]force | false | Skips progressive deployment mechanism such as canaries or backpressure. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| groups | none (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:
| Flag | Default | Description |
|---|---|---|
--format | yaml | Output format: 'yaml' or 'json' |
--proxy | none | Address 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:
| Flag | Default | Description |
|---|---|---|
--[no-]clear | false | Removes the target version, Teleport will default to its current proxy version. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| version | none (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:
| Flag | Default | Description |
|---|---|---|
--logins | none | List of allowed SSH logins for the bot user |
--max-session-ttl | none | Set a max session TTL for the bot's internal identity. 12h default, 168h maximum. |
--roles | none | Roles the bot is able to assume. |
--token | none | Name of an existing token to use. |
--ttl | none | TTL for the bot join token. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, one of: text, json |
--token | none | The token to use, if any. If unset, a new one-time-use token will be created. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text' or 'json' |
--query | none | An expression in the Teleport predicate language used to filter bot instances |
--search | none | Fuzzy search query used to filter bot instances |
--sort-index | bot_name | Request sort index, 'bot_name', 'active_at_latest', 'version_latest' or 'host_name_latest' |
--sort-order | ascending | Request sort order, 'ascending' or 'descending' |
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Argument | Default | Description |
|---|---|---|
| id | none (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:
| Argument | Default | Description |
|---|---|---|
| name | none (required) | Name of an existing bot to remove. |
tctl bots update
Update an existing bot.
Usage:
tctl bots update [<flags>] <name>
Flags:
| Flag | Default | Description |
|---|---|---|
--add-logins | none | Adds a comma-separated list of logins to an existing bot. |
--add-roles | none | Adds a comma-separated list of roles to an existing bot. |
--set-logins | none | Sets the bot's logins to the given comma-separated list, replacing any existing logins. |
--set-max-session-ttl | none | Sets the max session TTL. 168h maximum. |
--set-roles | none | Sets the bot's roles to the given comma-separated list, replacing any existing roles. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Argument | Default | Description |
|---|---|---|
| name | none (required) | The name of the token |
tctl create
Create or update a Teleport resource from a YAML file.
Usage:
tctl create [<flags>] [<filename>]
Flags:
| Flag | Default | Description |
|---|---|---|
-f, --[no-]force | false | Overwrite the resource if already exists |
Arguments:
| Argument | Default | Description |
|---|---|---|
| filename | none (optional) | resource definition file, empty for stdin |
tctl db ls
List all databases registered with the cluster.
Usage:
tctl db ls [<flags>] [<labels>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', 'json', or 'yaml' |
--query | none | Query by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"') |
--search | none | List of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase") |
-v, --[no-]verbose | false | Verbose table output, shows full label output |
Arguments:
| Argument | Default | Description |
|---|---|---|
| labels | none (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:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', 'json' or 'yaml' |
-v, --[no-]verbose | false | Verbose table output, shows full label output |
tctl devices add
Register managed devices.
Usage:
tctl devices add [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--asset-tag | none | Inventory identifier for the device (e.g., Mac serial number) |
--enroll-ttl | none | Time duration for the enrollment token |
--format | text | Output format, 'text', 'json', or 'yaml' |
--[no-]current-device | false | Registers the current device. Overrides --os and --asset-tag. |
--[no-]enroll | false | If set, creates a device enrollment token |
--os | none | Operating system |
tctl devices enroll
Creates a new device enrollment token.
Usage:
tctl devices enroll [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--asset-tag | none | Inventory identifier for the device |
--device-id | none | Device identifier |
--[no-]current-device | false | Enrolls the current device. Overrides --device-id and --asset-tag. |
--ttl | none | Time duration for the enrollment token |
tctl devices lock
Locks a device.
Usage:
tctl devices lock [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--asset-tag | none | Inventory identifier for the device |
--device-id | none | Device identifier |
--expires | none | Time point (RFC3339) when the lock expires |
--message | none | Message to display to locked-out users |
--[no-]current-device | false | Locks the current device. Overrides --device-id and --asset-tag. |
--ttl | none | Time duration after which the lock expires |
tctl devices ls
Lists managed devices.
Usage:
tctl devices ls [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', 'json', or 'yaml' |
tctl devices rm
Removes a managed device.
Usage:
tctl devices rm [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--asset-tag | none | Inventory identifier for the device |
--device-id | none | Device identifier |
--[no-]current-device | false | Removes the current device. Overrides --device-id and --asset-tag. |
tctl edit
Edit a Teleport resource.
Usage:
tctl edit [<resource type/resource name>]
Arguments:
| Argument | Default | Description |
|---|---|---|
| resource type/resource name | none (optional) | Resource to update, e.g., "user/myuser" |
tctl get
Print a YAML declaration of various Teleport resources.
Usage:
tctl get [<flags>] <resources>
Flags:
| Flag | Default | Description |
|---|---|---|
--format | yaml | Output format: 'yaml', 'json' or 'text' |
--[no-]with-secrets | false | Include secrets in resources like certificate authorities or OIDC connectors |
-v, --[no-]verbose | false | Verbose table output, shows full label output |
Arguments:
| Argument | Default | Description |
|---|---|---|
| resources | none (required) | Resource spec: 'type/[name][,...]' or 'all' |
tctl help
Show help.
Usage:
tctl help [<command>...]
Arguments:
| Argument | Default | Description |
|---|---|---|
| command | none (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:
| Flag | Default | Description |
|---|---|---|
--format | none | output format, 'yaml' or 'json' |
--sp | none | name of a file containing service provider spec |
-u, --users | none | username or name of a file containing user spec |
tctl inventory list
List Teleport instance inventory.
Usage:
tctl inventory list [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--exact-version | none | Filter output by teleport version |
--format | text | Output format, 'text' or 'json' |
--newer-than | none | Filter for newer teleport versions |
--older-than | none | Filter for older teleport versions |
--services | none | Filter output by service (node,kube,proxy,etc) |
--update-group | none | Filter output by update group |
--upgrader | none | Filter output by upgrader (kube,unit,none) |
tctl inventory ping
Ping locally connected instance.
Usage:
tctl inventory ping <server-id>
Arguments:
| Argument | Default | Description |
|---|---|---|
| server-id | none (required) | ID of target server |
tctl inventory status
Show inventory status summary.
Usage:
tctl inventory status [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text' or 'json' |
--[no-]connected | false | Show locally connected instances summary |
tctl kube ls
List all Kubernetes clusters registered with the cluster.
Usage:
tctl kube ls [<flags>] [<labels>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', 'json', or 'yaml' |
--query | none | Query by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"') |
--search | none | List of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase") |
-v, --[no-]verbose | false | Verbose table output, shows full label output |
Arguments:
| Argument | Default | Description |
|---|---|---|
| labels | none (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:
| Flag | Default | Description |
|---|---|---|
--[no-]wide | false | Do not truncate the Description column, even if it exceeds terminal width |
tctl lock
Create a new lock.
Usage:
tctl lock [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--access-request | none | UUID of an Access Request to disable. |
--bot-instance-id | none | UUID of a bot instance to disable |
--device | none | UUID of a trusted device to disable. |
--expires | none | Time point (RFC3339) when the lock expires. |
--join-token | none | Bot join token name to disable |
--login | none | Name of a local UNIX user to disable. |
--message | none | Message to display to locked-out users. |
--mfa-device | none | UUID of a user MFA device to disable. |
--role | none | Name of a Teleport role to disable. |
--server-id | none | UUID of a Teleport server to disable. |
--ttl | none | Time duration after which the lock expires. |
--user | none | Name of a Teleport user to disable. |
--windows-desktop | none | Name 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:
| Flag | Default | Description |
|---|---|---|
--format | yaml | Output format: 'yaml' or 'json' |
--[no-]load-from-cluster | false | load existing login rules from the connected Teleport cluster |
--resource-file | none | login rule resource file name (YAML or JSON) |
Arguments:
| Argument | Default | Description |
|---|---|---|
| traits-file | none (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:
| Flag | Default | Description |
|---|---|---|
--roles | node | Comma-separated list of roles for the new node to assume [node] |
--token | none | Override the default random generated token with a specified value |
--ttl | 30m0s | Time to live for a generated token |
tctl nodes ls
List all active SSH nodes within the cluster.
Usage:
tctl nodes ls [<flags>] [<labels>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'text', or 'yaml' |
--query | none | Query by predicate language enclosed in single quotes. Supports ==, !=, &&, and || (e.g. --query='labels["key1"] == "value1" && labels["key2"] != "value2"') |
--search | none | List of comma separated search keywords or phrases enclosed in quotations (e.g. --search=foo,bar,"some phrase") |
-v, --[no-]verbose | false | Verbose table output, shows full label output |
Arguments:
| Argument | Default | Description |
|---|---|---|
| labels | none (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:
| Flag | Default | Description |
|---|---|---|
--content | none | Set the notification's content. |
--labels | none | List of labels to attach to the notification. For example: key1=value1,key2=value2. |
--[no-]require-all-roles | false | Set whether this notification should target users who have all of the provided roles. |
--[no-]warning | false | Set whether this notification is a warning notification. |
--roles | none | Target 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, --title | none | Set the notification's title. |
--ttl | 30d | Time duration after which the notification expires (default 30 days). |
--user | none | Target 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:
| Flag | Default | Description |
|---|---|---|
--format | text | Output format, 'yaml', 'json', or 'text' |
--labels | none | List of comma separated labels to filter by labels (e.g. key1=value1,key2=value2) |
--[no-]all | false | Set whether all notifications should be included, including those generated by Teleport, as opposed to solely those created using tctl notifications create. |
--user | none | Set 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:
| Flag | Default | Description |
|---|---|---|
--user | none | The user the notification to remove belongs to, if any. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| id | none (required) | The ID of the notification to remove. |
tctl plugins cleanup
Cleans up the given plugin type.
Usage:
tctl plugins cleanup [<flags>] <type>
Flags:
| Flag | Default | Description |
|---|---|---|
--[no-]dry-run | true | Dry run the cleanup command. Dry run defaults to on. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| type | none (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:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Flag | Default | Description |
|---|---|---|
--plugin-name | aws-identity-center | Name of the AWS Identity Center integration instance to update. Defaults to aws-identity-center. |
--roles-sync-mode | none | Control 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:
| Flag | Default | Description |
|---|---|---|
--access-list-default-owner | none | Teleport user to set as default owner for the imported Access Lists. Multiple flags allowed. |
--account-id | none | Add AWS Account to account import list by ID. All AWS accounts will be imported if no items are added to account import list. |
--account-name | none | Add 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-arn | none | ARN of a role that the system credential should assume. |
--exclude-account-id | none | Exclude AWS account from import list by ID. |
--exclude-account-name | none | Exclude AWS account from import list by name. Can be a glob or a regular expression (enclosed in ^$). |
--exclude-group-name | none | Exclude AWS group from import list by name. Can be a glob or a regular expression (enclosed in ^$). |
--group-name | none | Add 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-arn | none | AWS Identity center instance ARN |
--instance-region | none | AWS Identity Center instance region |
--[no-]force-scim-url | false | Use the provided SCIM provisioning endpoint even if it fails scim endpoint validation |
--[no-]use-system-credentials | true | Uses system credentials instead of OIDC. |
--oidc-integration | none | Name of the Teleport OIDC integration to use when authenticating with AWS. Must be supplied when --no-use-system-credentials is set. |
--roles-sync-mode | ALL | Control 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-token | none | AWS Identify Center SCIM provisioning token. |
--scim-url | none | AWS Identity Center SCIM provisioning endpoint |
--user-label | none | Add 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-origin | none | Shorthand 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:
| Flag | Default | Description |
|---|---|---|
--access-list-owners-source | plugin | Source of the Access List owners. |
--auth-connector-name | entra-id-default | Name of the SAML connector resource to create |
--default-owner | none | List of Teleport users that are default owners for the imported Access Lists. Multiple flags allowed. |
--exclude-group-id | none | Exclude group matching the specified group ID. |
--exclude-group-name | none | Exclude groups matching the specified group name regex. |
-f, --[no-]force | false | Proceed with installation even if plugin already exists. |
--group-id | none | Include group matching the specified group ID. |
--group-name | none | Include groups matching the specified group name regex. |
-m, --[no-]manual-setup | false | Manually set up the EntraID integration. |
--name | entra-id | Name of the plugin resource to create |
--[no-]access-graph | true | Enables Access Graph cache build. |
--[no-]use-system-credentials | false | Uses system credentials instead of OIDC. |
tctl plugins install github
Install an Access Graph Github integration.
Usage:
tctl plugins install github [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--start-date | <today> | Start 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:
| Flag | Default | Description |
|---|---|---|
--[no-]insecure-skip-verify | false | Skip 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:
| Flag | Default | Description |
|---|---|---|
-a, --app-filter | none | Add an app filter. Supports globbing by default. Enclose in ^pattern$ for full regex support. |
--api-token | none | Okta API token for the plugin to use |
--app-id | none | Okta ID of the APP used for SSO via SAML |
-g, --group-filter | none | Add a group filter. Supports globbing by default. Enclose in ^pattern$ for full regex support. |
--name | okta | Name of the plugin resource to create |
--[no-]accesslist-sync | true | Enable group to Access List synchronization |
--[no-]appgroup-sync | true | Enable Okta Applications and Groups sync |
--[no-]assign-default-roles | true | If user synchronization is enabled, assign the builtin okta-requester role to synchronized users |
--[no-]scim | false | Enable SCIM Okta integration |
--[no-]system-logs-export | false | Enables the Teleport Identity Security SIEM integration for Okta. |
--[no-]users-sync | true | Enable user synchronization |
-o, --owner | none | Add default owners for synced Access Lists |
--org | none | URL of Okta organization |
--saml-connector | none | SAML connector used for Okta SSO login. |
tctl plugins install scim
Install a Teleport SCIM plugin.
Usage:
tctl plugins install scim --connector=CONNECTOR [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--auth | oauth | Plugin Authentication type. |
--connector | none | Name of the Teleport connector to use. |
--connector-type | none | Type 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:
| Flag | Default | Description |
|---|---|---|
--[no-]validate-token | true | Validate that the supplied token is valid for the configured downstream SCIM service |
--plugin-name | aws-identity-center | Name of the AWSIC plugin instance to update. Defaults to aws-identity-center. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| token | none (required) | The new SCIM bearer token. |
tctl proxy ls
Lists proxies connected to the cluster.
Usage:
tctl proxy ls [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | yaml | Output format: 'yaml', 'json' or 'text' |
tctl recordings download
Download session recordings.
Usage:
tctl recordings download [<flags>] <session-id>
Flags:
| Flag | Default | Description |
|---|---|---|
-o, --output-dir | <current working directory> | Directory to download session recordings to. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| session-id | none (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:
| Flag | Default | Description |
|---|---|---|
--format | text | Format output (text, json, yaml).. Defaults to 'text'. |
tctl recordings ls
List recorded sessions.
Usage:
tctl recordings ls [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | text | Format output (text, json, yaml).. Defaults to 'text'. |
--from-utc | none | Start of time range in which recordings are listed. Format 2006-01-02. Defaults to 24 hours ago. |
--last | none | Duration into the past from which session recordings should be listed. Format 5h30m40s |
--limit | 50 | Maximum number of recordings to show. Default 50. |
--to-utc | none | End 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:
| Flag | Default | Description |
|---|---|---|
--annotations | none | Resolution attributes <key>=<val>[,...] |
--assume-start-time | none | Sets time roles can be assumed by requestor (RFC3339 e.g 2023-12-12T23:20:50.52Z) |
--delegator | none | Optional delegating identity |
--reason | none | Optional reason message |
--roles | none | Override requested roles <role>[,...] |
Arguments:
| Argument | Default | Description |
|---|---|---|
| request-id | none (required) | ID of target request(s) |
tctl requests create
Create pending Access Request.
Usage:
tctl requests create [<flags>] <username>
Flags:
| Flag | Default | Description |
|---|---|---|
--[no-]dry-run | false | Don't actually generate the Access Request |
--reason | none | Optional reason message |
--resource | none | Resource ID to be requested |
--roles | none | Roles to be requested |
Arguments:
| Argument | Default | Description |
|---|---|---|
| username | none (required) | Name of target user |
tctl requests deny
Deny pending Access Request.
Usage:
tctl requests deny [<flags>] <request-id>
Flags:
| Flag | Default | Description |
|---|---|---|
--annotations | none | Resolution annotations <key>=<val>[,...] |
--delegator | none | Optional delegating identity |
--reason | none | Optional reason message |
Arguments:
| Argument | Default | Description |
|---|---|---|
| request-id | none (required) | ID of target request(s) |
tctl requests get
Show Access Request by ID.
Usage:
tctl requests get <request-id>
Arguments:
| Argument | Default | Description |
|---|---|---|
| request-id | none (required) | ID of target request(s) |
tctl requests ls
Show active Access Requests.
Usage:
tctl requests ls [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--sort-index | created | Request sort index, 'created' or 'state' |
--sort-order | descending | Request sort order, 'ascending' or 'descending' |
tctl requests review
Review an Access Request.
Usage:
tctl requests review --author=AUTHOR [<flags>] <request-id>
Flags:
| Flag | Default | Description |
|---|---|---|
--author | none | Username of reviewer |
--[no-]approve | false | Review proposes approval |
--[no-]deny | false | Review proposes denial |
Arguments:
| Argument | Default | Description |
|---|---|---|
| request-id | none (required) | ID of target request |
tctl requests rm
Delete an Access Request.
Usage:
tctl requests rm [<flags>] <request-id>
Flags:
| Flag | Default | Description |
|---|---|---|
-f, --[no-]force | false | Force the deletion of an active Access Request |
Arguments:
| Argument | Default | Description |
|---|---|---|
| request-id | none (required) | ID of target request(s) |
tctl rm
Delete a resource.
Usage:
tctl rm [<resource type/resource name>]
Arguments:
| Argument | Default | Description |
|---|---|---|
| resource type/resource name | none (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:
| Argument | Default | Description |
|---|---|---|
| connector_name | none (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:
| Flag | Default | Description |
|---|---|---|
--assign-scope | none | Scope that should be applied to resources provisioned by this token |
--format | none | Output format, 'text', 'json', or 'yaml' |
--mode | none | Usage mode of a token (default: unlimited, single_use) |
--name | none | Override the default, randomly generated token name with a specified name |
--scope | none | Scope assigned to the token itself |
--ttl | 30m0s | Set expiration time for token, default is 30 minutes |
--type | none | Type(s) of token to add, e.g. --type=node |
tctl scoped tokens ls
List invitation tokens.
Usage:
tctl scoped tokens ls [<flags>]
Flags:
| Flag | Default | Description |
|---|---|---|
--format | none | Output format, 'text', 'json' or 'yaml' |
--[no-]with-secrets | false | Do not redact join tokens |
tctl scoped tokens rm
Delete/revoke a scoped invitation token.
Usage:
tctl scoped tokens rm [<token>]
Arguments:
| Argument | Default | Description |
|---|---|---|
| token | none (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:
| Flag | Default | Description |
|---|---|---|
--api-endpoint-url | https://api.github.com | API endpoint URL for GitHub instance. |
--display | none | Sets the connector display name. |
--endpoint-url | https://github.com | Endpoint URL for GitHub instance. |
--id | none | GitHub app client ID. |
-n, --name | github | Connector name. |
--[no-]ignore-missing-roles | false | Ignore missing roles referenced in --teams-to-roles. |
--redirect-url | none | Authorization callback URL. |
-r, --teams-to-roles | none | Sets teams-to-roles mapping using format 'organization,name,role1,role2,...'. Repeatable. |
--secret | none | GitHub 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:
| Flag | Default | Description |
|---|---|---|
--acr | none | Authentication Context Class Reference values. |
--display | none | Sets the connector display name. |
--google-acc | none | Google only. String containing Google service account credentials. |
--google-acc-uri | none | Google only. URI pointing at service account credentials. Example: file:///var/lib/teleport/gworkspace-creds.json. |
--google-admin | none | Google only. Email of a Google admin to impersonate. |
--google-id | none | Shorthand for setting the --id flag to <GOOGLE_WORKSPACE_CLIENT_ID>.apps.googleusercontent.com |
--id | none | OIDC app client ID. |
--issuer-url | none | Issuer URL. |
-n, --name | none | Connector name. Required, unless implied from preset. |
--[no-]google-legacy | false | Google 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-roles | false | Ignore missing roles referenced in --claims-to-roles. |
-p, --preset | none | Preset. One of: [google gitlab okta] |
--prompt | none | Optional OIDC prompt. Example values: none, select_account, login, consent. |
--provider | none | Sets the external identity provider type to enable IdP specific workarounds. Examples: ping, adfs, netiq, okta. |
-r, --claims-to-roles | none | Sets claim-to-roles mapping using format 'claim_name,claim_value,role1,role2,...'. Repeatable. |
--redirect-url | none | Authorization callback URL(s). Each repetition of the flag declares one redirectURL. |
--scope | none | Scope specifies additional scopes set by provider. Each repetition of the flag declares one scope. Examples: email, groups, openid. |
--secret | none | OIDC 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:
| Flag | Default | Description |
|---|---|---|
--acs | none | AssertionConsumerService is a URL for assertion consumer service on the service provider (Teleport's side). |
--assertion-cert-file | none | A file with cert used for securing SAML assertions. Must be used together with --assertion-key-file. |
--assertion-key-file | none | A file with key used for securing SAML assertions. Must be used together with --assertion-cert-file. |
--audience | none | Audience uniquely identifies our service provider. |
--cert | none | Cert file with with the IdP certificate PEM. IdP signs <Response> responses using this certificate. |
--display | none | Sets the connector display name. |
-e, --entity-descriptor | none | Set the Entity Descriptor. Valid values: file, URL, XML content. Supplies configuration parameters as single XML instead of individual elements. |
--issuer | none | Issuer is the identity provider issuer. |
-n, --name | none | Connector name. Required, unless implied from preset. |
--[no-]allow-idp-initiated | false | Allow the IdP to initiate the SSO flow. |
--[no-]ignore-missing-roles | false | Ignore missing roles referenced in --attributes-to-roles. |
-p, --preset | none | Preset. One of: [okta onelogin ad adfs] |
--provider | none | Sets the external identity provider type. Examples: ping, adfs. |
-r, --attributes-to-roles | none | Sets attribute-to-role mapping using format 'attr_name,attr_value,role1,role2,...'. Repeatable. |
--service-provider-issuer | none | ServiceProviderIssuer is the issuer of the service provider (Teleport). |
--signing-cert-file | none | A file with request certificate. Must be used together with --signing-key-file. |
--signing-key-file | none | A file with request signing key. Must be used together with --signing-cert-file. |
--sso | none | SSO 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:
| Flag | Default | Description |
|---|---|---|
--browser | none | Set to 'none' to suppress browser opening on login. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| filename | none (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:
| Flag | Default | Description |
|---|---|---|
--format | text | Output 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:
| Flag | Default | Description |
|---|---|---|
--bot-ttl | 1h | Time-to-live of the Bot resource. The bot will be removed after this period. Defaults to [1h] |
--resource-prefix | tctl-terraform-env- | Resource prefix to use when creating the Terraform role and bots. Defaults to [tctl-terraform-env-] |
--role | none | Role 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:
| Flag | Default | Description |
|---|---|---|
--app-name | example-app | Name of the application to add |
--app-uri | http://localhost:8080 | URI of the application to add |
--db-name | none | Name of the database to add |
--db-protocol | none | Database protocol to use. Supported are: [postgres mysql mongodb oracle cockroachdb redis snowflake sqlserver cassandra elasticsearch opensearch dynamodb clickhouse clickhouse-http spanner] |
--db-uri | none | Address the database is reachable at |
--format | none | Output format, 'text', 'json', or 'yaml' |
--labels | none | Set token labels, e.g. env=prod,region=us-west |
--ttl | 30m0s | Set expiration time for token, default is 30 minutes |
--type | none | Type(s) of token to add, e.g. --type=node,app,db,proxy,etc |
--value | none | Override 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:
| Flag | Default | Description |
|---|---|---|
--bot | none | Name of the the bot that this token will grant access to. When set, creates a bot token. Overrides --type |
--cluster-name | none | Name of the Kubernetes cluster. When not set, defaults to the context name. |
--context | none | Kubernetes context to use. When not set, defaults to the active context. |
-f, --[no-]force | false | Force the token creation, even if the token already exists |
-j, --join-with | auto | Kubernetes joining type, possible values are 'oidc', 'jwks', and 'auto'. See https://goteleport.com/docs/reference/join-methods/#kubernetes-kubernetes for more details. |
-n, --namespace | teleport | Namespace of the Kubernetes Service Account using the token. For 'teleport-kube-agent' and 'tbot' Helm charts, this is release namespace. |
-o, --out | ./values.yaml | Path of the output file. |
-s, --service-account | none | Name of the Kubernetes Service Account using the token. For 'teleport-kube-agent' and 'tbot' Helm charts, this is the release name. |
--token-name | none | Optional name of the created join token. When not set, default to '<CLUSTER_NAME>(-<BOT_NAME>)' |
--type | kube,app,discovery | Type(s) of token to add, e.g. --type=kube,app,db,discovery,proxy,etc |
--update-group | none | Optional 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:
| Flag | Default | Description |
|---|---|---|
--format | none | Output format, 'text', 'json' or 'yaml' |
--labels | none | List of comma separated labels to filter by labels (e.g. key1=value1,key2=value2) |
--[no-]with-secrets | false | Do not redact join tokens |
tctl tokens rm
Delete/revoke an invitation token.
Usage:
tctl tokens rm [<token>]
Arguments:
| Argument | Default | Description |
|---|---|---|
| token | none (optional) | Token to delete |
tctl top
Report diagnostic information.
Usage:
tctl top [<diag-addr>] [<refresh>]
Arguments:
| Argument | Default | Description |
|---|---|---|
| diag-addr | none (optional) | Diagnostic HTTP URL |
| refresh | 5s (optional) | Refresh period |
tctl update
Update resource fields.
Usage:
tctl update [<flags>] [<resource type/resource name>]
Flags:
| Flag | Default | Description |
|---|---|---|
--set-labels | none | Set labels |
--set-ttl | none | Set TTL |
Arguments:
| Argument | Default | Description |
|---|---|---|
| resource type/resource name | none (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:
| Flag | Default | Description |
|---|---|---|
--aws-role-arns | none | List of allowed AWS role ARNs for the new user |
--azure-identities | none | List of allowed Azure identities for the new user |
--db-names | none | List of allowed database names for the new user |
--db-roles | none | List of database roles for automatic database user provisioning |
--db-users | none | List of allowed database users for the new user |
--default-relay-addr | none | Relay address that clients should use by default |
--gcp-service-accounts | none | List of allowed GCP service accounts for the new user |
--host-user-gid | none | GID for auto provisioned host users to use |
--host-user-uid | none | UID for auto provisioned host users to use |
--kubernetes-groups | none | List of allowed Kubernetes groups for the new user |
--kubernetes-users | none | List of allowed Kubernetes users for the new user |
--logins | none | List of allowed SSH logins for the new user |
--mcp-tools | none | List of allowed MCP tools for the new user |
--roles | none | List of roles for the new user to assume |
--ttl | 1h0m0s | Set expiration time for token, default is 1h0m0s, maximum is 48h0m0s |
--windows-logins | none | List of allowed Windows logins for the new user |
Arguments:
| Argument | Default | Description |
|---|---|---|
| account | none (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:
| Flag | Default | Description |
|---|---|---|
--ttl | 8h0m0s | Set expiration time for token, default is 8h0m0s, maximum is 24h0m0s |
Arguments:
| Argument | Default | Description |
|---|---|---|
| account | none (required) | Teleport user account name |
tctl users rm
Deletes user accounts.
Usage:
tctl users rm <logins>
Arguments:
| Argument | Default | Description |
|---|---|---|
| logins | none (required) | Comma-separated list of user logins to delete |
tctl users update
Update user account.
Usage:
tctl users update [<flags>] <account>
Flags:
| Flag | Default | Description |
|---|---|---|
--set-aws-role-arns | none | List of allowed AWS role ARNs for the user, replaces current AWS role ARNs |
--set-azure-identities | none | List of allowed Azure identities for the user, replaces current Azure identities |
--set-db-names | none | List of allowed database names for the user, replaces current database names |
--set-db-roles | none | List of allowed database roles for automatic database user provisioning, replaces current database roles |
--set-db-users | none | List of allowed database users for the user, replaces current database users |
--set-default-relay-addr | none | Relay address that clients should use by default. Value can be reset by providing an empty string |
--set-gcp-service-accounts | none | List of allowed GCP service accounts for the user, replaces current service accounts |
--set-host-user-gid | none | GID for auto provisioned host users to use. Value can be reset by providing an empty string |
--set-host-user-uid | none | UID for auto provisioned host users to use. Value can be reset by providing an empty string |
--set-kubernetes-groups | none | List of allowed Kubernetes groups for the user, replaces current Kubernetes groups |
--set-kubernetes-users | none | List of allowed Kubernetes users for the user, replaces current Kubernetes users |
--set-logins | none | List of allowed SSH logins for the user, replaces current logins |
--set-mcp-tools | none | List of allowed MCP tools for the user, replaces current allowed MCP tools. |
--set-roles | none | List of roles for the user to assume, replaces current roles |
--set-windows-logins | none | List of allowed Windows logins for the user, replaces current Windows logins |
Arguments:
| Argument | Default | Description |
|---|---|---|
| account | none (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:
| Flag | Default | Description |
|---|---|---|
--expires-at | none | Time 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. |
--reason | none | Reason for revocation. |
--serial | none | Serial number of the certificate to revoke. |
--type | none | Type 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:
| Flag | Default | Description |
|---|---|---|
--[no-]follow | false | Follow the stream of CRL updates. |
--out | none | Path 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:
| Flag | Default | Description |
|---|---|---|
--serial | none | Serial number of the certificate to remove the revocation for. |
--type | none | Type of credential to remove the revocation for (x509). |
tctl workload-identity rm
Delete a workload identity configuration.
Usage:
tctl workload-identity rm <name>
Arguments:
| Argument | Default | Description |
|---|---|---|
| name | none (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:
| Flag | Default | Description |
|---|---|---|
-f, --[no-]force | false | Overwrite the existing override if it exists. |
--name | default | The name of the override resource to write. |
--[no-]dry-run | false | Print the workload_identity_x509_issuer_override that would have been created, without actually creating it. |
Arguments:
| Argument | Default | Description |
|---|---|---|
| fullchain.pem | none (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:
| Flag | Default | Description |
|---|---|---|
--creation-mode | same | How the attributes of the issuer are encoded in the CSR: "same", "empty". |
-f, --[no-]force | false | Attempt to sign as many CSRs as possible even in the presence of errors. |