SSH Access
To enable secure access to your device, we use public-key cryptography rather than a default username and password.
In short this means that you generate what’s known as a key-pair. The pair is made up of two files - a public key and a private key. The public key is transferred to your device, and only your private key will be able to log in to it. Your private key is like an extremely secure password and you should never share this with anyone.
Generating a key-pair
Linux
Open your terminal and run:
ssh-keygen -t rsa
You will be asked where to save your new key-pair Leave this blank if you would like to use the default location
/home/user/.ssh/id_rsa
You can optionally add a passphrase. This is an additional layer of security that will require you to enter your passphrase when using your private key.
If you selected the default file path you will have two new files:
/home/user/.ssh/id_rsa
is your private key - again do not share this./home/user/.ssh/id_rsa.pub
is your public key - this can be shared.
Public Key Contents
If you read the contents of your public key it will look something like this:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSUOctoVJ5nwQO0I9c8gIK0ijYbOCZKdVmAu8jG0Znl2zvZLFYI7bGFbt/Rr8vjFVh4I2srFB52duirX53LtZF2ZUKMI+8ivaLk+pD7M0WL+sbG1jU2S/IdCUi7HmZ/fSp89UJb23i9Q9AINFdw+0spCjJSWB8+3wGQ4bPUSbNLCtsYv1anO+B26PIN5E9R0X84IVq+x41B1swvlUt15zfMwA7Jhl5fJgl6XzhNYcMdH/qp+r7Ij2d7NM9YR6/yva4/QLqzbPCoelxJLpVHKZ0ZLnhvYOoxRbLbU46AgTljGM3Z7rcvxm2Vl107ZojljuvF6cMXM4NU4peVimn5XOP gez@example
This includes three things:
The encryption protocol used -
ssh-rsa
The public key - a seemingly random string
An identifier of the creator -
gez@example
Adding your public key to your Mycroft account
Now that you have your key-pair setup, you can add it to any of your Mycroft devices at: https://home.mycroft.ai/devices
Your Mark II device will then fetch this public key from your Mycroft account.
SSH in to your device
With your public key on your Mark II, and your private key remaining securely on your local machine, you can now SSH into the device.
You can find the IP address of your device by saying "Hey Mycroft, what is my IP Address?".
You will now be logged in as the mycroft
user, with the virtual environment active. Your prompt should look like:
From here you can interact with the device as you would any other Linux system.
Multiple containers
There are 3 areas that make up the operating system on your Mark II:
mycroft
container - contains everything you would expect and is built on a base of Ubuntu 20.04.awconnect
container - contains the WiFi setup application and manages the network connections._pv_
(Pantavisor) initrd view - boots the system, manages the other containers as well as updates.
You can SSH into both of these containers and the initrd view by using the container name as the username. For example to SSH into awconnect
you would run:
Or to SSH into the Pantavisor initrd view you would run:
There is also a BSP layer that can be mounted for inspection on another machine. This contains the kernel, modules and firmware.
Transfer files to or from your device
Now that you have SSH access, you can transfer files to and from your device using scp
.To do this, we also need to use the port 8222, however unlike ssh
the scp
command uses the uppercase -P
flag 🤷
Lets transfer my_file
from our computer, to the Mark II device:
We can also transfer files in the other direction. Let's grab all of the Mycroft log files in one command using the -r
recursive flag:
Last updated