Configuration des utilisateurs

Utilisateur par défaut

Par défaut, un utilisateur privilégié nommé core est créé sur un système Fedora CoreOS, mais aucun mot de passe ou clé SSH ne lui est associé. Si vous souhaitez utiliser l’utilisateur core, vous devez créer une configuration Ignition qui inclue un mot de passe ou une (ou plusieurs) clés SSH pour cet utilisateur. Vous pouvez aussi créer d’autres utilisateurs à l’aide de la configuration Ignition.

Création d’un nouvel utilisateur

To create a new user (or users), add it to the users list of your Butane config. In the following example, the config creates two new usernames, but doesn’t configure them to be especially useful.

variant: fcos
version: 1.3.0
passwd:
  users:
    - name: jlebon
    - name: miabbott

Il est généralement souhaitable de configurer une clé SSH ou un mot de passe pour pouvoir se connecter avec ces utilisateurs.

Authentification par clé SSH

To configure an SSH key for a local user, you can use a Butane config:

variant: fcos
version: 1.3.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Emplacement des clés SSH

sshd utilise l’outil ssh-key-dir pour lire les clés publiques contenues dans le dossier utilisateur ~/.ssh/authorized_keys.d. Les fichiers de clés sont lus dans l’ordre alphabétique, en ignorant ceux commençant par un point. Le fichier classique ~/.ssh/authorized_keys`est lu en dernier. Pour débuguer la lecture du `~/.ssh/authorized_keys.d, exécutez manuellement l’outil ssh-key-dir et observez la sortie standard :

/usr/libexec/ssh-key-dir

Ignition enregistre les clés SSH dans ~/.ssh/authorized_keys.d/ignition. Pour les plateformes sur lequel les clés SSH peuvent être directement configurées, comme AWS, Afterburn enregistrera ces clés dans ~/.ssh/authorized_keys.d/afterburn.

Authentification par mot de passe

Fedora CoreOS ships with no default passwords. You can use a Butane config to set a password for a local user. Building on the previous example, we can configure the password_hash for one or more users:

variant: fcos
version: 1.3.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Pour générer un hachage d’un mot de passe, utiliser la commande mkpasswd :

$ mkpasswd --method=yescrypt
Password:
$y$j9T$A0Y3wwVOKP69S.1K/zYGN.$S596l11UGH3XjN...

La fonction de hachage yescrypt est recommandée pour les nouveaux mots de passe. Pour plus de détails sur les fonctions de hachage, voir man 5 crypt.

Le mot de passe ne sera accepté que dans le cas d’un accès local avec la console. Par défaut, Fedora CoreOS n’accepte pas l’authentification par mot de passe via SSH.

Configuration des groupes

Fedora CoreOS dispose d’un ensemble de groupes configurés par défaut : root, adm, wheel, sudo, systemd-journal, docker

When configuring users via Butane configs, we can specify groups that the user(s) should be a part of.

variant: fcos
version: 1.3.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      groups:
        - wheel
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      groups:
        - docker
        - wheel
      password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

If a group does not exist, users should create them as part of the Butane config.

variant: fcos
version: 1.3.0
passwd:
  groups:
    - name: engineering
    - name: marketing
      gid: 9000
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      groups:
        - engineering
        - wheel
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      groups:
        - docker
        - marketing
        - wheel
      password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Configuration des accès privilégiés

The easiest way for users to be granted administrative privileges is to have them added to the sudo and wheel groups as part of the Butane config.

variant: fcos
version: 1.3.0
passwd:
  groups:
    - name: engineering
    - name: marketing
      gid: 9000
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      groups:
        - engineering
        - wheel
        - sudo
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      groups:
        - docker
        - marketing
        - wheel
        - sudo
      password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Activation de l’authentification par mot de passe via SSH

To enable password authentication via SSH, add the following to your Butane config:

variant: fcos
version: 1.3.0
storage:
  files:
    - path: /etc/ssh/sshd_config.d/20-enable-passwords.conf
      mode: 0644
      contents:
        inline: |
          # Fedora CoreOS disables SSH password login by default.
          # Enable it.
          # This file must sort before 40-disable-passwords.conf.
          PasswordAuthentication yes