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.

Sí no desea usar Ignition para administrar la(s) clave(s) SSH predeterminadas de usuario, puede hacer uso del Soporte Afterburn y suministrar una clave SSH por medio de su proveedor en la nube.

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.5.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.5.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Usar Referencias de Archivo para Claves SSH

Dependiendo de la variante de configuración y de la versión que use, puede usar referencias de archivos locales a claves públicas SSH en lugar de insertarlas. El ejemplo de la sección anterior se puede volver a escribir como sigue:

variant: fcos
version: 1.5.0
passwd:
  users:
    - name: core
      ssh_authorized_keys_local:
        - users/core/id_rsa.pub
    - name: jlebon
      ssh_authorized_keys_local:
        - users/jlebon/id_rsa.pub
        - users/jlebon/id_ed25519.pub
    - name: miabbott
      ssh_authorized_keys_local:
        - users/miabbott/id_rsa.pub

Usted tiene que usar butane con el parámetro --files-dir para permitir cargar archivos desde el disco cuando convierta las configuraciones Ignition para este trabajo.

Compruebe las Especificaciones de configuración para más detalles y que versiones de su variante seleccionada las soportan. Generalmente, cada archivo puede contener múltiples claves SSH, una por línea, y además puede especificar en línea ssh_authorized_keys siempre que las claves SSH sean únicas.

Ubicaciones de Clave SSH

sshd usa un programa de ayuda, especificado por medio de la directiva AuthorizedKeysCommand, para leer las claves públicas desde archivo en el directorio ~/.ssh/authorized_keys.d del usuario. AuthorizedKeysCommand se prueba después de los archivos AuthorizedKeysFile usuales (de forma predeterminada a ~/.ssh/authorized_keys) y no será ejecutado si una clave que coincida se encuentra allí. Los archivos de clave en ~/.ssh/authorized_keys.d son leídos en orden alfabético ignorando los archivos de punto.

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.

Para depurar la lectura de ~/.ssh/authorized_keys.d, manualmente ejecute el programa ayudante e inspeccione su salida:

/usr/libexec/ssh-key-dir

Para visualizar y validar la configuración efectiva de sshd, hay dos modos de prueba disponibles (-t, -T) como se documenta en la página de manual.

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.5.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - ssh-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 mkpasswd desde el paquete whois. Su distribución Linux puede tener una implementación diferente de mkpasswd; puede asegurarse de que está usando la correcta ejecutándola desde un contenedor:

$ podman run -ti --rm quay.io/coreos/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.5.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
    - name: jlebon
      groups:
        - wheel
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      groups:
        - docker
        - wheel
      password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Si no existe un grupo, los usuarios podrían crearlo como parte de la configuración Butane.

variant: fcos
version: 1.5.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...
        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      groups:
        - docker
        - marketing
        - wheel
      password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Configurar Privilegios Administrativos

La manera más fácil para que los usuarios obtengan privilegios administrativos es tenerlos añadidos a los grupos sudo y wheel como parte de la configuración Butane.

variant: fcos
version: 1.5.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...
        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
    - name: miabbott
      groups:
        - docker
        - marketing
        - wheel
        - sudo
      password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...

Habilitando la Autenticación de Contraseña SSH

Para habilitar la autenticación de contraseña por medio de SSH, añada lo siguiente en su configuración Butane:

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