Configurando os usuários
Usuário Default
Por default, um usuário privilegiado nomeado core
é criado no sistema Fedora CoreOS, mas não é configurado com uma senha default ou uma chave SSH. Se você deseja utilizar o usuário core
, você deve prover uma configuração do Ignition que inclui uma senha e/ou chave(s) SSH para o usuário core
. Alternativamente, você deveria criar novos usuários adicionais via configurações do Ignition.
Se não quiser usar o Ignition para gerenciar as chaves SSH do usuário padrão, você pode usar o suporte do Afterburn e fornecer uma chave SSH por meio do seu provedor de nuvem.
Criando um novo usuário
Para criar um novo usuário (ou mais de um), adicione-o a lista users
da sua configuração Butane, no exemplo a seguir, a configuração cria dois novos nomes de usuários, mas não os configura para serem especialmente úteis.
variant: fcos
version: 1.6.0
passwd:
users:
- name: jlebon
- name: miabbott
Você irá (tipicamente) querer configurar chaves SSH ou uma senha, para poder entrar como esses usuários.
Usando uma chave SSH
Para configurar uma chave SSH para um usuário local, você pode usar uma configuração Butane:
variant: fcos
version: 1.6.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...
Usando referências de arquivo para chaves SSH
Dependendo da variante e da versão de configuração que você usar, você pode usar referências de arquivo locais para chaves públicas SSH em vez de embuti-las. O exemplo de seção anterior pode ser reescrito da seguinte forma:
variant: fcos
version: 1.6.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
Você precisa usar butane
com o parâmetro --files-dir
para permitir o carregamento de arquivos do disco ao converter para configurações do Ignition para que isso funcione.
Consulte Especificações de configuração para obter mais detalhes e saber quais versões da variante selecionada a suportam. Geralmente, cada arquivo pode conter várias chaves SSH, uma por linha, e você também pode especificar ssh_authorized_keys em linha, desde que as chaves SSH sejam exclusivas.
|
Localizações das chaves SSH
sshd usa um programa auxiliar, especificado pela diretiva AuthorizedKeysCommand
, para ler chaves públicas de arquivos no diretório ~/.ssh/authorized_keys.d
de um usuário. O AuthorizedKeysCommand
é tentado após os arquivos AuthorizedKeysFile
usuais (o padrão é ~/.ssh/authorized_keys
) e não será executado se uma chave correspondente for encontrada lá. Os arquivos de chave em ~/.ssh/authorized_keys.d
são lidos em ordem alfabética, ignorando arquivos de ponto.
O Ignition grava as chaves SSH configuradas em ~/.ssh/authorized_keys.d/ignition
. Em plataformas onde as chaves SSH podem ser configuradas no nível da plataforma, como AWS, Afterburn escreve essas chaves em ~/.ssh/authorized_keys.d/afterburn
.
Para depurar a leitura de ~/.ssh/authorized_keys.d
, execute manualmente o programa auxiliar e inspecione sua saída:
/usr/libexec/ssh-key-dir
Para visualizar e validar a configuração efetiva do sshd, dois modos de teste (-t
, -T
) estão disponíveis, conforme documentado em páginas de manual.
Usando autenticação por senha
O Fedora CoreOS não vem com senhas por padrão. Você pode usar uma configuração Butane para escolher uma senha para um usuário local. Considerando o exemplo anterior, você pode configurar o password_hash
para um ou mais usuários:
variant: fcos
version: 1.6.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 gerar um hash de senha seguro, use mkpasswd
do pacote whois
. Sua distribuição Linux pode ter uma implementação diferente de mkpasswd
; você pode garantir que está usando a correta executando-a em um contêiner:
$ podman run -ti --rm quay.io/coreos/mkpasswd --method=yescrypt
Password:
$y$j9T$A0Y3wwVOKP69S.1K/zYGN.$S596l11UGH3XjN...
O método de hash yescrypt
é recomendado para novas senhas, para mais detalhes em métodos de hash, veja man 5 crypt
.
A senha configurada será aceita para autenticação local no console. Por padrão, o Fedora CoreOS não permite password authentication via SSH.
Configurando grupos
O Fedora CoreOS vem com alguns grupos configurados por default: root
, adm
,wheel
,sudo
,systemd-journal
,docker
Quando estiver configurando usuários via configurações Butane, nós podemos especificar de quais grupos o(s) usuário(s) será parte.
variant: fcos
version: 1.6.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...
Se um grupo não existe, os usuários devem cria-los como parte da configuração Butane.
variant: fcos
version: 1.6.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...
Configurando privilégios administrativos
A maneira mais fácil para garantir privilégios administrativos para usuários é adicioná-los aos grupos sudo
e wheel
como parte da configuração Butane.
variant: fcos
version: 1.6.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 autenticação SSH por senha
Para habilitar autenticação por senha via SSH, adicione o seguinte na sua configuração Butane:
variant: fcos
version: 1.6.0
storage:
files:
- path: /etc/ssh/sshd_config.d/20-enable-passwords.conf
mode: 0644
contents:
inline: |
# Fedora CoreOS desabilita login SSH por senha por padrão
# Habilite-o.
# Este arquivo deve vir antes de 40-disable-passwords.conf.
PasswordAuthentication yes
Want to help? Learn how to contribute to Fedora Docs ›