Development images SSH access since v2.88 (?)

Hi all,

I’ve tried the newest, latest and greatest BalenaOS images for the Raspberry Pi 4 (v2.88…5+rev1) and used the development image. Disclaimer I’m using openBalena and downloading the images via the CLI or via balenaOS - Run Docker containers on embedded IoT devices.

What surprised me is that the config.json only contains the device type, so not the provisioning key and details about the openBalena instance and the files property with the networking properties. So it’s a very simple config.json.

Next to that, when trying to SSH into the OS, using balena ssh <local-ip>, I got the error of a public key authentication fail. But the development image shouldn’t have any SSH authentication, right?


So my questions are:

  • What has drastically changed in the images, regarding the config.json file?
  • Is it still possible to add SSH keys via os.sshKeys via the config.json file?
  • Where can I find the provisioning key etc?
  • How can I SSH into the development image once running on a device?

Thanks in advance!

Hi, when you download OS images using the CLI or the balena.io/os page you are downloading unmanaged images, so no provisioning keys are included. You can use the balena join command if you want to join a fleet on a balenaCloud instance.
The config.json should contain a developmentMode: true entry that configures the image in development mode and allows passwordless configuration. Please make sure you are using the latest CLI as older versions might not be doing this right.

Hi @alexgg,

Thanks for your response. I’ve tried it, but developmentMode: true is removed when I use the os configure command.

My full command is:

$ BALENARC_BALENA_URL="balena.development.vedicium.io" ./balena os configure <path>/<to>/<image> --fleet <fleet-name>

Some details:

  • BalenaOS v2.88.5+rev1 (supervisor v12.11.0)
  • Balena CLI v13.1.13 (macOS)

After some trial / error, you’ve to append --dev at the end of the configure command. This wasn’t something I was aware of and couldn’t find in the documentation.

This will probably help others in the same situation.