users.users 和 configuration.nix 中的 authorizedKeysFile 的正确方法

how the proper way users.users and authorizedKeysFiles in configuration.nix

刚学安装nixos

这是我的一些 /etc/nixos/configuration.nix

...
  users.users.bino = {
    isNormalUser = true;
    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
  };

...

  # Enable the OpenSSH daemon.
  services.openssh.enable = true;
  services.openssh.authorizedKeysFiles = ["./ssh-keys.nix"];

这是我的 /etc/nixos/ssh-keys.nix

[root@nixos_bino:/etc/nixos]# cat ./ssh-keys.nix 
{
  bino = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCt7LNPLKQdWPB/AdpMaghkyju0aeZ9gFvQcxPWNqKXRpDiQvPTtSf+lCgTx1XR2drEzTjUqeo33ztA+2/t9RNluVr9etGCFYkmjNLyxZ0ohCR+MUxyZvsrYUATPsBZipkxCosTfRlabbgjmLxOwrcutMLgvuaIQRrPKG/zp5oQbiMi0M3F+QbN/R1jrWGNrOa+uPg75/TubpRTjddsi24G2hw75/Z5OJ6JZi//hc3uL85jtMXqOYLlBSBzdLHh+TgaK2RpsHKYrYd9WAs99BGuIBmJ4WEW2yyxpo9+6fPbjD0WwjB9UUSd5olgbGYrGaCfBQAE0ztAR5OzhI944mNV bino@bino-ThinkPad-X201";
}

我运行 nixos-install 没有错误

重启

尝试使用 ssh bino@192.168.1.228(192.168.1.228 配置为静态 IP)ssh 新安装,主机仍然要求输入密码。

尝试使用 root ssh,成功。 发现创建了用户 'bino',包括它的主目录。

所以我的问题是:在 configuration.nix 中使用 ssh-key 添加一些默认用户的正确方法是什么?

此致

-二元-

问题在于

services.openssh.authorizedKeysFiles = ["./ssh-keys.nix"];

告诉 NixOS 在系统配置的某处使用 纯字符串 "./ssh-keys.nix"。 您想要的是要读取的文件及其在系统配置中使用的内容。

以下应该有效:

users.users.bino.openssh.authorizedKeys.keys
 =
  let keys = import ./ssh-keys.nix;
  in [ keys.bino ];