diff --git a/roles/float-base/tasks/apt.yml b/roles/float-base/tasks/apt.yml
index e73754caa2c1c8dbb4ec08d89fd4d0520393a142..71834ba0005dfc44879cc482d8e6c922f727aacc 100644
--- a/roles/float-base/tasks/apt.yml
+++ b/roles/float-base/tasks/apt.yml
@@ -90,12 +90,10 @@
     path: "/etc/apt/preferences.d/99float-syslog"
     state: absent
 
-- name: Install base packages
-  apt:
-    name: "{{ packages }}"
-    state: present
-  vars:
-    packages:
+- set_fact:
+    extra_packages: []
+    ssh_packages: []
+    base_packages:
       # Standard Debian packages
       - acpid
       - auditd
@@ -130,16 +128,25 @@
       - runcron
       - tabacco
 
-- name: Install extra packages
-  apt:
-    name: "{{ extra_packages }}"
-    state: present
-  vars:
+- set_fact:
+    ssh_packages:
+      - ssh-key-wtmp
+  when: "enable_ssh"
+
+- set_fact:
     extra_packages:
       - net-tools
       - vim
   when: "not testing|default(True)"
 
+- set_fact:
+    all_packages: "{{ base_packages + ssh_packages + extra_packages }}"
+
+- name: Install packages
+  apt:
+    name: "{{ all_packages }}"
+    state: present
+
 - name: Remove blacklisted packages
   apt:
     name: "{{ packages }}"