diff --git a/group_vars/all/archusers.yml b/group_vars/all/archusers.yml
index e9bed79a612cbae26d8596f4d502c53623b96657..34eb37350f5c56700c65ade8cdb56507a3970055 100644
--- a/group_vars/all/archusers.yml
+++ b/group_vars/all/archusers.yml
@@ -7,6 +7,7 @@ arch_groups:
   - multilib
   - archboxes-sudo
   - docker-image-sudo
+  - support-staff
 
 arch_users:
   alertmanager:
@@ -149,6 +150,13 @@ arch_users:
       - dev
       - tu
       - multilib
+  denisse:
+    name: "Andrea Denisse Gómez-Martínez"
+    ssh_key: denisse.pub
+    hosts:
+      - mail.archlinux.org
+    groups:
+      - support-staff
   diabonas:
     name: "Jonas Witschel"
     ssh_key: diabonas.pub
@@ -322,6 +330,17 @@ arch_users:
     groups:
       - tu
       - multilib
+  klausenbusk:
+    name: "Kristian Klausen"
+    ssh_key: klausenbusk.pub
+    hosts:
+      - mail.archlinux.org
+    groups:
+      - support-staff
+    additional_ssh_keys:
+      - name: klausenbusk_2.pub
+        hosts:
+          - all
   lcarlier:
     name: "Laurent Carlier"
     ssh_key: lcarlier.pub
diff --git a/pubkeys/denisse.pub b/pubkeys/denisse.pub
new file mode 100644
index 0000000000000000000000000000000000000000..3e954a04f955d9fb2d0a66fde53add20d0dc8b05
--- /dev/null
+++ b/pubkeys/denisse.pub
@@ -0,0 +1,2 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKo2Uddwkt9dx+V4UO9AnP0RIKqkfqOEx1osQszQpzK1 andrea@youdu
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGTMR5HHwFsKQWlvAk4UGhYxiB15dHY5pPoVufBSPNDF andrea@diyu
diff --git a/roles/archusers/tasks/main.yml b/roles/archusers/tasks/main.yml
index dc069496af0d1f995f3026619722d49e1ab27cc7..595e2b2ec0023050271784e4e6332ee676fa9b5a 100644
--- a/roles/archusers/tasks/main.yml
+++ b/roles/archusers/tasks/main.yml
@@ -4,6 +4,11 @@
   group: name="{{ item }}" state=present system=no
   with_items: "{{ arch_groups }}"
 
+- name: filter arch_users for users with non-matching hosts
+  set_fact: arch_users_filtered="{{ (arch_users_filtered | default([])) + [ item ] }}"
+  when: item.value.hosts is not defined or inventory_hostname in item.value.hosts
+  with_dict: "{{ arch_users }}"
+
 - name: create Arch Linux-specific users
   user:
     name: "{{ item.key }}"
@@ -14,21 +19,21 @@
     password: ""
     update_password: on_create
     state: present
-  with_dict: "{{ arch_users }}"
+  loop: "{{ arch_users_filtered }}"
 
 - name: create .ssh directory
   file: path=/home/{{ item.key }}/.ssh state=directory owner={{ item.key }} group=users mode=0700
-  with_dict: "{{ arch_users }}"
+  loop: "{{ arch_users_filtered }}"
 
 - name: configure ssh keys
   template: src=authorized_keys.j2 dest=/home/{{ item.key }}/.ssh/authorized_keys owner={{ item.key }} group=users mode=0600
   when: item.value.ssh_key is defined
-  with_dict: "{{ arch_users }}"
+  loop: "{{ arch_users_filtered }}"
 
 - name: remove ssh keys if undefined
   file: path=/home/{{ item.key }}/.ssh/authorized_keys state=absent
   when: item.value.ssh_key is not defined
-  with_dict: "{{ arch_users }}"
+  loop: "{{ arch_users_filtered }}"
 
 - name: get list of remote users
   find: paths="/home" file_type="directory"
@@ -37,5 +42,5 @@
   # TODO: this removes the keys of svn-packages and svn-community on gemini temporarily. add some form of whitelist for those users?
 - name: disable ssh keys of disabled users
   file: path="/home/{{ item }}/.ssh/authorized_keys" state=absent
-  when: item not in arch_users
+  when: item not in (arch_users_filtered | map(attribute='key'))
   with_items: "{{ all_users.files | map(attribute='path') | map('basename') | list }}"