class

Beryl::Apply::UserUpdateKeys

Inherits Beryl::Apply::Primitive < Reference < Object

Primitive user-update-keys : synchronise le fichier ~<user>/.ssh/authorized_keys avec l'ensemble exact des clés déclarées (sémantique « set », pas « append » : les clés absentes de la liste sont retirées du serveur).

Idempotence : diff ligne par ligne, comparaison par (type + blob base64) en ignorant le commentaire final.

GARDE-FOU : refus explicite de retirer une clé que beryl utilise actuellement pour se connecter (context.protected_keys, dérivées de host.identity_file). Sans ça, retirer cette clé du YAML puis lancer apply couperait l'accès en plein vol.

- user-update-keys:
    user: deploy
    keys:
      - "ssh-ed25519 AAAA... deploy@aloli"

Constants

KEY_TYPE = /\A(ssh-(rsa|dss|ed25519)|ecdsa-sha2-[\w-]+|sk-(ssh-ed25519|ecdsa-sha2-[\w-]+)@openssh\.com)\z/

Type de clé reconnu en tête d'une ligne authorized_keys (après d'éventuelles options). Sert à isoler le couple (type, blob).

Instance methods

apply(shell : Shell, params : Hash(String, YAML::Any), dry_run : Bool, context : Context) : StepResult

params est le hash brut du step YAML (ex: {"packages" => [...]}), déjà interpolé par l'Executor. context porte les infos dérivées du host (cf. Context).

Source
name

Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).

Source

Nested types