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 ];
刚学安装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 ];