id = "tsh"
name = "Teleport tsh"
homepage = "https://goteleport.com"
description = "Teleport provides connectivity, authentication, access controls and audit for infrastructure."
icon = "theSVG:teleport"
executables = ["tsh"]
[dotfiles]
paths = ["~/.tsh/config/config.yaml"]
exclude = []
secret = ["~/.tsh/keys/"]
side_effect = false
[commands]
format = 1
label = "Teleport tsh"
description = "Log in to a Teleport cluster, list nodes and open SSH sessions. Databases, Kubernetes, apps and access requests are left out."
quality = "ai-draft"
base = "fig:tsh"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "fig"
kind = "completion"
url = "https://github.com/withfig/autocomplete/blob/master/src/tsh.ts"
license = "MIT"
[[commands.subcommand]]
path = ["login"]
label = "Log in"
description = "Log in to a cluster and fetch a session certificate."
[[commands.subcommand.source]]
id = "fig"
kind = "completion"
url = "https://github.com/withfig/autocomplete/blob/master/src/tsh.ts"
license = "MIT"
[[commands.subcommand.field]]
id = "proxy"
label = "Proxy address"
type = "string"
option = ["--proxy"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "user"
label = "User"
type = "string"
option = ["--user"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "auth"
label = "Auth connector"
type = "string"
option = ["--auth"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "ttl"
label = "Minutes to live"
type = "string"
option = ["--ttl"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "insecure"
label = "Skip certificate verification"
type = "boolean"
option = ["--insecure"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "format"
label = "Output format"
type = "enum"
option = ["-f", "--format"]
choices = [{ value = "text", label = "Text" }, { value = "json", label = "JSON" }, { value = "yaml", label = "YAML" }]
sources = ["fig"]
[[commands.subcommand.field]]
id = "quiet"
label = "Quiet"
type = "boolean"
option = ["-q", "--quiet"]
sources = ["fig"]
[[commands.subcommand.task]]
id = "login"
label = "Log in to proxy"
fields = ["proxy", "user", "auth"]
required = ["proxy"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["proxy", "user", "auth", "ttl", "format", "quiet", "insecure"]
[[commands.subcommand]]
path = ["ls"]
label = "List nodes"
description = "List remote SSH nodes."
[[commands.subcommand.source]]
id = "fig"
kind = "completion"
url = "https://github.com/withfig/autocomplete/blob/master/src/tsh.ts"
license = "MIT"
[[commands.subcommand.field]]
id = "format"
label = "Output format"
type = "enum"
option = ["-f", "--format"]
choices = [{ value = "text", label = "Text" }, { value = "json", label = "JSON" }, { value = "yaml", label = "YAML" }]
sources = ["fig"]
[[commands.subcommand.field]]
id = "quiet"
label = "Quiet"
type = "boolean"
option = ["-q", "--quiet"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "proxy"
label = "Proxy address"
type = "string"
option = ["--proxy"]
sources = ["fig"]
[[commands.subcommand.task]]
id = "ls"
label = "List nodes"
fields = ["format"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["format", "quiet", "proxy"]
[[commands.subcommand]]
path = ["ssh"]
label = "SSH to a node"
description = "Run a shell on a node through Teleport. Port forwarding options are left out."
[[commands.subcommand.source]]
id = "fig"
kind = "completion"
url = "https://github.com/withfig/autocomplete/blob/master/src/tsh.ts"
license = "MIT"
[[commands.subcommand.field]]
id = "target"
label = "user@hostname"
type = "string"
position = 0
sources = ["fig"]
[[commands.subcommand.field]]
id = "login"
label = "Login name"
type = "string"
option = ["-l"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "port"
label = "Port"
type = "integer"
option = ["-p"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "agent"
label = "Forward auth agent"
type = "boolean"
option = ["-A"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "identity"
label = "Identity file"
type = "path"
option = ["-i"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["fig"]
[[commands.subcommand.field]]
id = "no_tty"
label = "Disable pseudo-tty"
type = "boolean"
option = ["-T"]
sources = ["fig"]
[[commands.subcommand.field]]
id = "quiet"
label = "Quiet"
type = "boolean"
option = ["-q"]
sources = ["fig"]
[[commands.subcommand.task]]
id = "ssh"
label = "Connect"
fields = ["target"]
required = ["target"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["target", "login", "port", "agent", "identity", "no_tty", "quiet"]