Configurando Usuarios

Usuario Predeterminado

De forma predeterminada en el sistema Fedora CoreOS se crea un usuario privilegiado llamado core, pero no está configurado con una contraseña predeterminada o clave SSH. Si desea utilizar el usuario core, debe suministrarle una configuración Ignition que incluye una contraseña y/o clave(s) SSH para el usuario core. Alternativamente usted puede crear nuevos usuarios adicionales por medio de configuraciones Ignition.

Creando un NUevo Usuario

Para crear un nuevo usuario (o usuarios), añádalos a la lista `users`de su configuración Butane. En el siguiente ejemplo, la configuración crea dos nuevos nombres de usuario pero no los configura para ser especialmente útiles.

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

Usted normalmente desea configurar claves SSH o una contraseña con el objetivo de ser capaz de acceder como esos usuarios.

Usando una clave SSH

Para configurar una clave SSH para un usuario local, puede usar una configuración Butane:

variant: fcos
version: 1.4.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...

Ubicaciones de Clave SSH

sshd utiliza un programa de ayuda para leer las claves públicas de los archivos del directorio de usuario ~/.ssh/authorized_keys.d. Los archivos son leídos en orden alfabético, ignorando los archivos con puntos. El archivo estándar ~/.ssh/authorized_keys se lee después de la manera habitual. Para depurar la lectura de ~/.ssh/authorized_keys.d, ejecute manualmente el programa de ayuda e inspeccione su salida:

/usr/libexec/ssh-key-dir

Ignition escribe las claves SSH configuradas en ~/.ssh/authorized_keys.d/ignition. Sobre las plataformas donde las claves SSH pueden ser configuradas a nivel de plataforma, como AWS, Afterburn escribe estas claves en ~/.ssh/authorized_keys.d/afterburn.

Usando Contraseña de Autenticación

Fedora CoreOS se envía sin contraseñas predeterminadas. Puede usar la configuración Butane para establecer una contraseña para un usuario local. Sobre la base del ejemplo anterior, podemos configurar el password_hash para uno o más usuarios:

variant: fcos
version: 1.4.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...

Para generar un hash de contraseña seguro, use el comando mkpasswd:

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

Se recomienda el método hash yescrypt para las nuevas contraseñas. Para más información sobre los métodos de hash vea man 5 crypt.

La contraseña configurada será aceptada para la autenticación local en la consola. De modo predeterminado, Fedora CoreOS no permite password authentication via SSH.

Configurando Grupos

Fedora CoreOS viene con unos pocos grupos configurados de manera predeterminada: root, adm, wheel, sudo, systemd-journal, docker

Cuando configuramos usuarios por medio de configuraciones Butane, podemos especificar los grupos de los que podría ser parte el usuario(s).

variant: fcos
version: 1.4.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.4.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...

Configuring Administrative Privileges

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.4.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...

Enabling SSH Password Authentication

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

variant: fcos
version: 1.4.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