Teleport Machine ID tbot Bootstrap (MacOS LaunchAgent) — 技能工具
v1.0.0Bootstrap a persistent Teleport Machine ID (tbot) setup on macOS using LaunchAgent and tbot configure identity. Trigger when asked to set up, automate, or va...
详细分析 ▾
运行时依赖
版本
Initial release of teleport-tbot-bootstrap - Automates setup of persistent Teleport Machine ID (tbot) on macOS using LaunchAgent and `tbot configure identity` - Guides collection of required inputs: proxy address, onboarding token, bot roles, and output directory - Installs and manages user-level LaunchAgent for seamless tbot identity refresh at login - Performs automatic config, first-run verification, and status reporting using tsh - Emphasizes security best practices and provides known limitations for v1.0.0 - Complements the teleport-tsh-ssh skill for daily SSH and automation host access - Supports bound keypair onboarding (with registration secret) - Includes Teleport prereq YAML examples (Role/Bot/Token) - Scopes node access via openclaw-allowed: "true" label pattern - Includes host user auto-creation example (create_host_user_mode: insecure-drop)
安装命令 点击复制
技能文档
Set up a local, persistent Machine ID bot on macOS for OpenClaw/agent SSH access.
Pair this with teleport-tsh-ssh for operational host access once identity refresh is in place.
Compatibility
Tested against Teleport/tbot 18.7.0.
Inputs to collect
- Teleport proxy address (for example
teleport.example.com:443) - Bot onboarding secret (token and/or registration secret depending on cluster setup)
- Bot role(s) / bot name context from Teleport setup
- Optional output directory (default:
~/.openclaw/workspace/tbot)
LaunchAgent behavior (macOS)
Use LaunchAgent for user-session persistence.
- Starts automatically at user login.
- Starts immediately when loaded with
launchctl bootstrap gui/.... - Restarts automatically when
KeepAliveis true. - Does not require root when installed under
~/Library/LaunchAgents.
Use LaunchDaemon only when system-wide root context is explicitly required.
Workflow
- Ensure prerequisites:
tbot,tsh, writable output dir. - Create output + state dirs (default
~/.openclaw/workspace/tbotand~/.openclaw/workspace/tbot/state). - Generate config via
tbot configure identity(do not hand-write config):
file://.../tbot)
- storage should point to state dir (file://.../tbot/state)
- set proxy and join method (bound_keypair preferred)
- write config file to ~/.openclaw/workspace/tbot/tbot.yaml
- Create LaunchAgent plist to run
tbot start -cwithRunAtLoad+KeepAlive. - Load/start LaunchAgent.
- Verify identity output exists and is fresh (
.../tbot/identity). - Verify access path with
tsh -i.--proxy= ls - Report status and next steps.
Bound keypair guidance
Prefer bound_keypair join method for recoverability after interruptions (sleep/reboot).
Use high recovery limits for resilient rejoin flows when appropriate.
Use a fresh bot/state directory for first-time setup. Reusing state from a different bot/token can cause key lookup mismatches.
Use Teleport-side preregistration first (Bot + role + join config). Keep access label-scoped (for example openclaw-allowed: "true") so access is opt-in per node.
See:
references/teleport-prereq-examples.yaml- https://goteleport.com/docs/reference/cli/tbot/
Security notes
- Never commit onboarding tokens or registration secrets to git.
- Treat
tbot.yaml, bot state, and identity outputs as sensitive material. - Prefer secure secret delivery (interactive input, secret manager, env injection) over plaintext chat logs.
Known limitations (v1.0.0)
- Focuses on SSH identity output workflows (not Teleport app/db/kubernetes outputs).
- Uses LaunchAgent user context; does not provide full LaunchDaemon/root automation.
Commands (reference)
- Generate config:
tbot configure identity --output ~/.openclaw/workspace/tbot/tbot.yaml ...
- Start once (foreground test):
tbot start -c ~/.openclaw/workspace/tbot/tbot.yaml
- LaunchAgent load:
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.openclaw.tbot.plist
- LaunchAgent restart:
launchctl kickstart -k gui/$(id -u)/com.openclaw.tbotClawhub listing copy
Clawhub short description
Bootstrap a persistent Teleport Machine ID (tbot) identity on macOS using LaunchAgent and tbot configure identity.
Companion skill
Use with teleport-tsh-ssh for day-to-day SSH/command/scp operations using the refreshed identity.
Clawhub long description
Set up a local, persistent Machine ID bot for automation hosts.
Generate config using tbot configure identity, install a user LaunchAgent (com.openclaw.tbot), and validate identity output with a tsh smoke test.
Includes LaunchAgent persistence (no root), bound keypair onboarding support, Teleport prereq examples (Role/Bot/Token), label-scoped node access patterns, registration-secret retrieval guidance, and first-run fresh-state guidance.
Resources
- Setup script:
scripts/bootstrap_tbot_launchagent.sh - Teleport YAML examples:
references/teleport-prereq-examples.yaml - LaunchAgent template notes:
references/launchagent-notes.md
Uninstall / cleanup
launchctl bootout gui/$(id -u)/com.openclaw.tbotrm -f ~/Library/LaunchAgents/com.openclaw.tbot.plist- Remove bot files if desired:
rm -rf ~/.openclaw/workspace/tbot
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制