配置用户
默认用户
默认情况下,Fedora CoreOS 系统会创建一个名为 core
的特权用户,但它没有配置默认密码或 SSH 密钥。如果您想使用 core
用户,您必须提供包含 core
用户密码和/或 SSH 密钥的 Ignition 配置。或者,你也可以通过 Ignition 配置创建额外的新用户。
如果不想使用 Ignition 管理默认用户的 SSH 密钥,可以使用 Afterburn 支持,通过云提供商提供 SSH 密钥。
创建新用户
要创建一个(或多个)新用户,请将其添加到 Butane 配置的`users`列表中。在下面的示例配置中,创建了两个新用户名,但并没有将它们配置得特别有用。
variant: fcos
version: 1.5.0
passwd:
users:
- name: jlebon
- name: miabbott
您通常需要配置 SSH 密钥或密码,以便能够以这些用户的身份登录。
使用 SSH 密钥
要为本地用户配置 SSH 密钥,可以使用 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...
使用指向 SSH 密钥的文件引用
根据所使用的配置变量和版本,可以使用 SSH 公钥的本地文件引用来代替内联。 因此,上一节中的示例可改写如下:
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
在转换为 Ignition 配置时,必须使用 butane
和`--files-dir`参数,以允许从磁盘加载文件,这样才能正常工作。
请查阅 配置规范,了解更多详情以及所选变体的支持版本。一般来说,每个文件可以包含多个 SSH 密钥,每行一个,只要 SSH 密钥是唯一的,还可以额外指定内联的 ssh_authorized_keys 。
|
SSH 密钥位置
sshd 使用通过 AuthorizedKeysCommand
指令指定的 辅助程序,从用户的 ~/.ssh/authorized_keys.d
目录中的文件读取公钥。 AuthorizedKeysCommand`会在通常的 `AuthorizedKeysFile
文件(默认为 ~/.ssh/authorized_keys
)之后进行尝试,如果在该文件中找到匹配的密钥,则不会执行该命令。 ~/.ssh/authorized_keys.d
中的密钥文件将按字母顺序读取,忽略点文件。
Ignition 会将配置的 SSH 密钥写入`~/.ssh/authorized_keys.d/ignition`。在可平台级配置 SSH 密钥的平台(如 AWS)上,Afterburn 会将这些密钥写入 ~/.ssh/authorized_keys.d/afterburn
。
要调试 ~/.ssh/authorized_keys.d
的读取,请手动运行辅助程序并检查其输出:
/usr/libexec/ssh-key-dir
要查看和验证 sshd 的有效配置,可使用两种测试模式(-t
, -T
),如 手册页面 所述。
使用密码验证
Fedora CoreOS 不提供默认密码。您可以使用 Butane 配置为本地用户设置密码。在上一个例子的基础上,我们可以为一个或多个用户配置`password_hash`:
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...
要生成安全密码哈希值,请使用 whois
软件包中的 mkpasswd
。你的 Linux 发行版可能会提供不同的 mkpasswd
实现;你可以通过在容器中运行它来确保使用的是正确的实现:
$ podman run -ti --rm quay.io/coreos/mkpasswd --method=yescrypt
Password:
$y$j9T$A0Y3wwVOKP69S.1K/zYGN.$S596l11UGH3XjN...
对于新密码,建议使用 yescrypt
散列方法。有关散列方法的更多详情,请参阅 man 5 crypt
。
配置的密码将被接受用于控制台的本地身份验证。默认情况下,Fedora CoreOS 不允许 password authentication via SSH。
配置组
Fedora CoreOS 默认配置了几个组:root
, adm
, wheel
, sudo
, systemd-journal
, docker
通过 Butane 配置用户时,我们可以指定用户应加入的组。
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...
如果不存在组,用户应将其作为 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...
配置管理权限
要授予用户管理权限,最简单的方法是在 Butane 配置中将他们添加到 sudo
和 wheel
组。
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...
启用 SSH 密码验证
要通过 SSH 启用密码验证,请在 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
Want to help? Learn how to contribute to Fedora Docs ›