2024-08-24 22:00:37 +03:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
myData,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
{
|
2024-08-25 11:07:35 +03:00
|
|
|
options.mj.services.ssh8022 = with lib.types; {
|
|
|
|
client = {
|
|
|
|
enable = lib.mkEnableOption "Enable ssh8022 client";
|
|
|
|
keyfile = lib.mkOption { type = str; };
|
|
|
|
};
|
|
|
|
server = {
|
|
|
|
enable = lib.mkEnableOption "Enable ssh8022 server";
|
|
|
|
keyfile = lib.mkOption { type = str; };
|
|
|
|
};
|
2024-08-24 22:00:37 +03:00
|
|
|
};
|
|
|
|
|
2024-08-25 11:07:35 +03:00
|
|
|
config = lib.mkMerge [
|
|
|
|
(
|
|
|
|
let
|
|
|
|
cfg = config.mj.services.ssh8022.client;
|
|
|
|
in
|
|
|
|
lib.mkIf cfg.enable {
|
|
|
|
programs.ssh.extraConfig = ''
|
|
|
|
Host dl.jakstys.lt
|
|
|
|
ProxyCommand ${pkgs.spiped}/bin/spipe -t %h:8022 -k ${cfg.keyfile}
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
)
|
|
|
|
(
|
|
|
|
let
|
|
|
|
cfg = config.mj.services.ssh8022.server;
|
|
|
|
in
|
|
|
|
lib.mkIf cfg.enable {
|
|
|
|
services.spiped = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
|
|
|
ssh8022 = {
|
|
|
|
inherit (cfg) keyfile;
|
|
|
|
decrypt = true;
|
|
|
|
source = "*:8022";
|
|
|
|
target = "127.0.0.1:22";
|
|
|
|
};
|
|
|
|
};
|
2024-08-24 22:00:37 +03:00
|
|
|
};
|
2024-08-25 11:07:35 +03:00
|
|
|
networking.firewall.allowedTCPPorts = [ myData.ports.ssh8022 ];
|
|
|
|
}
|
|
|
|
)
|
|
|
|
];
|
2024-08-24 22:00:37 +03:00
|
|
|
}
|