← Back to blog

This tutorial walks through the first practical kcore path: install and approve your first node, register an operator SSH key, create a Debian 12 VM, discover its IP using describe, then SSH into that VM.

We also published new user documentation in the kcore repo: kcorehypervisor.com/docs/user.

Asciinema walkthrough

Prerequisites

Before running the commands below:

1) Install and approve the first node

kctl --node <NEW_NODE_IP>:9091 node disks
kctl --node <NEW_NODE_IP>:9091 node nics

kctl --node <NEW_NODE_IP>:9091 node install \
  --os-disk /dev/sda \
  --join-controller <CTRL1_IP>:9090 \
  --join-controller <CTRL2_IP>:9090 \
  --dc-id DC1

kctl get nodes
kctl node approve <NODE_ID>
kctl get nodes

After approval, the node becomes schedulable for VM placement.

2) Add the operator SSH key

kcore-kctl ssh-key create operator-key \
  --public-key "$(cat ~/.ssh/id_ed25519.pub)"

This stores the public key as a named object so you can reference it with --ssh-key operator-key during VM creation.

3) Create a Debian 12 VM on that node

kcore-kctl create vm debian12-01 \
  --target-node <NODE_ID> \
  --image https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2 \
  --image-sha256 <DEBIAN12_QCOW2_SHA256> \
  --network default \
  --storage-backend filesystem \
  --storage-size-bytes 42949672960 \
  --ssh-key operator-key \
  --wait \
  --wait-timeout-seconds 300

4) Find the VM IP with describe

kcore-kctl describe vm debian12-01

Use the Network (and SSH port, if shown) from the describe output.

5) SSH into the VM

ssh -i ~/.ssh/id_ed25519 <username>@<vm-ip>

If you use a different keypair, pass the matching private key with -i. For more variants and flags, see VM creation modes.