Add declarative ssh known hosts
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
{ ... }:
|
||||
{ inputs, system, ... }:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
sops.secrets."ssh/sas/key" = {
|
||||
sopsFile = ../../../../secrets/sas/secrets.yaml;
|
||||
@@ -6,15 +9,22 @@
|
||||
path = "/root/.ssh/ssh_sas_ed25519_key";
|
||||
};
|
||||
|
||||
programs.ssh.extraConfig = ''
|
||||
Host github.com
|
||||
User git
|
||||
HostName github.com
|
||||
IdentityFile /root/.ssh/ssh_sas_ed25519_key
|
||||
programs.ssh = {
|
||||
extraConfig = ''
|
||||
Host github.com
|
||||
User git
|
||||
HostName github.com
|
||||
IdentityFile /root/.ssh/ssh_sas_ed25519_key
|
||||
|
||||
Host gitlab.sas.com
|
||||
User git
|
||||
HostName gitlab.sas.com
|
||||
IdentityFile /root/.ssh/ssh_sas_ed25519_key
|
||||
'';
|
||||
Host gitlab.sas.com
|
||||
User git
|
||||
HostName gitlab.sas.com
|
||||
IdentityFile /root/.ssh/ssh_sas_ed25519_key
|
||||
'';
|
||||
|
||||
knownHostsFiles = with selfPkgs; [
|
||||
ssh-known-hosts-github
|
||||
ssh-known-hosts-sas-gitlab
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@@ -1,8 +1,6 @@
|
||||
{ config, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../lib
|
||||
|
||||
inputs.disko.nixosModules.disko
|
||||
./format.nix
|
||||
|
||||
|
@@ -2,7 +2,16 @@
|
||||
user ? throw "user argument is required",
|
||||
home ? throw "home argument is required",
|
||||
}:
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
system,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user} = {
|
||||
sops.secrets = {
|
||||
@@ -26,28 +35,36 @@
|
||||
}
|
||||
);
|
||||
|
||||
ssh.matchBlocks = {
|
||||
"github.com" = {
|
||||
hostname = "github.com";
|
||||
user = "git";
|
||||
identityFile = [
|
||||
"${home}/.ssh/ssh_sas_ed25519_key"
|
||||
"${home}/.ssh/ssh_personal_ed25519_key"
|
||||
];
|
||||
ssh = {
|
||||
matchBlocks = {
|
||||
"github.com" = {
|
||||
hostname = "github.com";
|
||||
user = "git";
|
||||
identityFile = [
|
||||
"${home}/.ssh/ssh_sas_ed25519_key"
|
||||
"${home}/.ssh/ssh_personal_ed25519_key"
|
||||
];
|
||||
};
|
||||
|
||||
"gitlab.sas.com" = {
|
||||
hostname = "gitlab.sas.com";
|
||||
user = "git";
|
||||
identityFile = "${home}/.ssh/ssh_sas_ed25519_key";
|
||||
};
|
||||
|
||||
"gerrit-svi.unx.sas.com" = {
|
||||
hostname = "gerrit-svi.unx.sas.com";
|
||||
user = "nikara";
|
||||
port = 29418;
|
||||
identityFile = "${home}/.ssh/ssh_sas_ed25519_key";
|
||||
};
|
||||
};
|
||||
|
||||
"gitlab.sas.com" = {
|
||||
hostname = "gitlab.sas.com";
|
||||
user = "git";
|
||||
identityFile = "${home}/.ssh/ssh_sas_ed25519_key";
|
||||
};
|
||||
|
||||
"gerrit-svi.unx.sas.com" = {
|
||||
hostname = "gerrit-svi.unx.sas.com";
|
||||
user = "nikara";
|
||||
port = 29418;
|
||||
identityFile = "${home}/.ssh/ssh_sas_ed25519_key";
|
||||
};
|
||||
userKnownHostsFiles = with selfPkgs; [
|
||||
ssh-known-hosts-github
|
||||
ssh-known-hosts-sas-gitlab
|
||||
ssh-known-hosts-sas-gerrit
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@@ -2,13 +2,20 @@
|
||||
user ? throw "user argument is required",
|
||||
home ? throw "home argument is required",
|
||||
}:
|
||||
{ ... }:
|
||||
{ inputs, system, ... }:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user}.programs.ssh.matchBlocks = {
|
||||
"cldlgn.fyi.sas.com" = {
|
||||
inherit user;
|
||||
hostname = "cldlgn.fyi.sas.com";
|
||||
identityFile = "${home}/.ssh/ssh_sas_ed25519_key";
|
||||
home-manager.users.${user}.programs.ssh = {
|
||||
matchBlocks = {
|
||||
"cldlgn.fyi.sas.com" = {
|
||||
inherit user;
|
||||
hostname = "cldlgn.fyi.sas.com";
|
||||
identityFile = "${home}/.ssh/ssh_sas_ed25519_key";
|
||||
};
|
||||
};
|
||||
|
||||
userKnownHostsFiles = with selfPkgs; [ ssh-known-hosts-sas-cldlgn ];
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user