Fix ssh
This commit is contained in:
@@ -1,21 +1,19 @@
|
|||||||
{ config, lib, inputs, ... }:
|
{ config, lib, inputs, ... }:
|
||||||
let
|
let
|
||||||
allUsers = lib.concatMap (peer: if peer ? users then peer.users else []) config.syscfg.peers;
|
allUsers = lib.concatMap (peer: if peer.syscfg ? users then peer.syscfg.users else []) config.syscfg.peers;
|
||||||
groupedUsers = lib.groupBy (u: u.username) allUsers;
|
groupedUsers = lib.groupBy (u: u.username) allUsers;
|
||||||
allowedUsernames = map (u: u.username) config.syscfg.users;
|
allowedUsernames = map (u: u.username) config.syscfg.users;
|
||||||
activeUsers = lib.filterAttrs (name: _: lib.elem name allowedUsernames) groupedUsers;
|
activeUsers = lib.filterAttrs (name: _: lib.elem name allowedUsernames) groupedUsers;
|
||||||
userConfigs = lib.mapAttrs (name: userList: {
|
|
||||||
isNormalUser = true;
|
|
||||||
openssh.authorizedKeys.keys = lib.unique (map (u: u.pubssh) userList);
|
|
||||||
}) groupedUsers;
|
|
||||||
|
|
||||||
in {
|
in {
|
||||||
imports = [ ./hardware.nix ];
|
imports = [ ./hardware.nix ];
|
||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
services.openssh.ports = [ 422 ];
|
||||||
users.users = lib.mapAttrs (name: userList: {
|
users.users = lib.mapAttrs (name: userList: {
|
||||||
openssh.authorizedKeys.keys = lib.unique (map (u: u.pubssh) userList);
|
openssh.authorizedKeys.keys = lib.unique (map (u: u.pubssh) userList);
|
||||||
}) activeUsers // {
|
}) activeUsers
|
||||||
|
// {
|
||||||
root = {openssh.authorizedKeys.keys = [];};
|
root = {openssh.authorizedKeys.keys = [];};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user