nixplz
This commit is contained in:
parent
dd91744445
commit
a239632816
@ -19,6 +19,7 @@
|
||||
./zsh
|
||||
./packages
|
||||
./ssh
|
||||
./services/ssh-office.nix
|
||||
];
|
||||
firefox.enable = true;
|
||||
tmux.enable = true;
|
||||
|
@ -2,6 +2,7 @@
|
||||
home.packages = with pkgs; [
|
||||
# Generic tools
|
||||
age
|
||||
discord
|
||||
alacritty
|
||||
unstable.btop
|
||||
bzip2
|
||||
@ -75,5 +76,9 @@
|
||||
# Rust
|
||||
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