nixplz
This commit is contained in:
parent
dd91744445
commit
a239632816
@ -19,6 +19,7 @@
|
|||||||
./zsh
|
./zsh
|
||||||
./packages
|
./packages
|
||||||
./ssh
|
./ssh
|
||||||
|
./services/ssh-office.nix
|
||||||
];
|
];
|
||||||
firefox.enable = true;
|
firefox.enable = true;
|
||||||
tmux.enable = true;
|
tmux.enable = true;
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Generic tools
|
# Generic tools
|
||||||
age
|
age
|
||||||
|
discord
|
||||||
alacritty
|
alacritty
|
||||||
unstable.btop
|
unstable.btop
|
||||||
bzip2
|
bzip2
|
||||||
@ -75,5 +76,9 @@
|
|||||||
# Rust
|
# Rust
|
||||||
rustup
|
rustup
|
||||||
|
|
||||||
|
# homemade
|
||||||
|
sshotp
|
||||||
|
ssh-dresden
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
45
user/services/ssh-office.nix
Normal file
45
user/services/ssh-office.nix
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{ pkgs, config, ...}:
|
||||||
|
let
|
||||||
|
sshotp = pkgs.writeScriptBin "sshotp"
|
||||||
|
''
|
||||||
|
#!/usr/bin/env expect
|
||||||
|
set stty_init -echo
|
||||||
|
set timeout 300
|
||||||
|
set totp [lindex $argv 0];
|
||||||
|
puts "Our TOTP $totp"
|
||||||
|
spawn ssh -D 20000 dresden.uio.no
|
||||||
|
expect {
|
||||||
|
-re {.*(Verification_Code):} {
|
||||||
|
send -- "$totp\r"
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
-re {.*dresden.*} {
|
||||||
|
wait
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
ssh-dresden = pkgs.writeShellApplication {
|
||||||
|
name = "ssh-dresden";
|
||||||
|
runtimeInputs = [ pkgs.rbw pkgs.expect ];
|
||||||
|
text = ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
totp=$(rbw get -f "TOTP" rlogin)
|
||||||
|
expect -f ${sshotp}/bin/sshotp "$totp"
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
systemd.user.services.ssh-office = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Office ssh session";
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${ssh-dresden}/bin/ssh-dresden";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user