Quickstart
Bootstrap a tenant, create the first host group, enroll a host, and complete a direct SSH connection.
This guide takes a tenant owner from an empty Tenvyr tenant to the first governed SSH connection. Plan about 30 minutes for a pilot environment.
Before you begin
You need:
- a Tenvyr tenant and its one-use owner bootstrap credential;
- a trusted Linux workstation for the initial owner ceremony;
- administrator access to one Linux host with a working OpenSSH server;
- a current Tenvyr CLI and host-agent package; and
- a tested out-of-band or break-glass path to the host.
Tenvyr is in private pilot. Verify the package checksum supplied with your pilot release before installing any binary.
1. Create the first owner
Run the owner bootstrap utility from the trusted Linux workstation. Sensitive values are entered at no-echo prompts—never place them in command arguments, environment variables, tickets, or chat.
install -d -m 0700 "$HOME/.tenvyr-owner-bootstrap"
./tenvyr-pilot-owner \
--url https://app.tenvyr.com \
--tenant-id YOUR_TENANT_UUID \
--email owner@example.com \
--display-name "Tenant Owner" \
--recovery-codes-file "$HOME/.tenvyr-owner-bootstrap/recovery-codes.txt"Add the displayed TOTP enrollment URI to your authenticator, enter the current six-digit code, and move the recovery-code file to approved offline storage. After signing in, register a user-verifying security key or passkey in Security.
2. Create the resource hierarchy
In the console:
- Open Resources.
- Create a project, such as
Production. - Create a host group, such as
Web servers. - Choose Strict offline mode for certificate-only access.
- Leave managed local accounts off for the first canary unless you have explicitly planned account ownership.
A host group is a signing and policy boundary. Hosts in different trust zones should not share a host group merely because they run the same application.
3. Enroll the first host
Open Resources, select the host group, and choose Enroll a host. Tenvyr issues a single-use token that:
- is displayed once;
- expires after ten minutes; and
- is valid for one host only.
On the Linux host:
sudo install -d -o root -g root -m 0700 /etc/tenvyr
sudo install -o root -g root -m 0600 \
"$HOME/Downloads/tenvyr-enrollment-TOKEN_ID.token" \
/etc/tenvyr/enrollment-token
rm -f "$HOME/Downloads/tenvyr-enrollment-TOKEN_ID.token"
sudo tenvyr-agent \
-enrollment-token-file /etc/tenvyr/enrollment-token \
-onceConfirm that /var/lib/tenvyr/identity.json exists and that the host appears in
the console. Then configure the package service and start it:
sudo install -o root -g root -m 0600 \
/usr/share/doc/tenvyr-agent/agent.env.example \
/etc/tenvyr/agent.env
sudo systemctl enable --now tenvyr-agent
sudo systemctl status --no-pager tenvyr-agent4. Create an access policy
Open Access and choose New policy. For the first canary:
- select the new host group;
- add one test user as the subject;
- select a known local account;
- require one independent approver;
- set a one-hour maximum grant;
- keep the certificate lifetime at ten minutes or less;
- choose Hardware-backed certificate; and
- choose Login only.
Policy creation requires MFA completed within the last five minutes.
5. Connect
On the user workstation:
tenvyr login --tenant YOUR_TENANT_UUID
tenvyr key enroll --hardware --name "Primary security key"
tenvyr access request \
--policy POLICY_UUID \
--host-group HOST_GROUP_UUID \
--account deploy \
--reason "Validate first managed host" \
--duration 1h
tenvyr access statusAfter approval, launch SSH:
tenvyr ssh host.example.com \
--host-group HOST_GROUP_UUID \
--user deploy \
--identity /path/to/hardware-backed-key \
--credential CREDENTIAL_UUID \
--grant GRANT_UUID \
--ttl 10mThe final connection is made by the workstation’s system OpenSSH client directly to the host. Tenvyr is not in the interactive traffic path.
Verify the result
- The host is online and reports a current desired-state revision.
- The access request shows its approver and decision.
- The issued certificate is valid for no more than ten minutes.
- The Audit view contains the request, decision, and issuance events.
- Your break-glass path still works.
Next, read How Tenvyr works before expanding the pilot.