Add SSH public host keys to global known_hosts file of a machine for machines that it has an encrypted link to .
Set ServerAliveInterval of 20s on the SSH tunnels, so ssh exits when it does not get responses of the SSH server for 60 seconds. This will help recover tunnels to machines that previously disappeared, and ssh didn't notice the failure yet.
Only let SSH tunnels restart after 20 seconds.
Add newline in knownHost entries, needed in the current knownHosts implementation of openssh module.
If charon.ec2_utils.retry function gets passed an empty list of error_codes, retry on all error_codes.
If a volume is about to be attached that is attached to a different instance already, confirm with user if this is what the user actually wants to do. Once user chooses to attach the volume,  detach call will be made, and the process will wait for 10 minutes for the volume to get into available mode, if not, then a force-detach call is made, and again the process will wait up to 10 minutes to become available, after which the volume will be attached to the instance.
When starting a EC2 that is in a stopped state, make sure to send encryption keys, so disks can be mounted, and boot will not wait.
Handle EC2 returning no console output
charon stop: Use a timeout, then try a force stop

Stopping an instance can hang, so if the instance hasn't stopped after
15 minutes, then try a force stop (twice).
charon check: Fix the 15 second SSH timeout
_open_ssh_master: Try several times to create the master connection

This may improve reliability on bad Internet connections.
Fix the none backend test
none backend: Check that target_host is set in the DB
Rely on switch-to-configuration doing a sync
charon deploy: Add option ‘--force-reboot’

This uses ‘nixos-rebuild boot’ to boot into the new configuration.
It's useful if (for whatever reason) switching a running system to the
new configuration is undesirable.
Print a message when activation was successful.
Move "activation finished" message to after the reboot
Don't ask for passwords

Charon is supposed to be non-interactive, so asking for passwords
(usually due to some SSH agent problem) is annoying.
charon check: More detailed info

‘charon check’ now prints a table showing whether each machine exists,
is up and is reachable via SSH, its load average and all systemd
services that are in a failed state.
charon check: Colourful output