aboutsummaryrefslogtreecommitdiffstats
path: root/modules/scripts/gopass-ssh-load
diff options
context:
space:
mode:
Diffstat (limited to 'modules/scripts/gopass-ssh-load')
-rw-r--r--modules/scripts/gopass-ssh-load/default.nix32
-rw-r--r--modules/scripts/gopass-ssh-load/script.sh46
2 files changed, 0 insertions, 78 deletions
diff --git a/modules/scripts/gopass-ssh-load/default.nix b/modules/scripts/gopass-ssh-load/default.nix
deleted file mode 100644
index 764f704..0000000
--- a/modules/scripts/gopass-ssh-load/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-let
- inherit ((import ../lib.nix { inherit lib pkgs; })) mkScriptModule;
-
- gopassKeys = config.security.ssh.gopassKeys;
-
- base = mkScriptModule {
- name = "gopass-ssh-load";
- path = ./script.sh;
- description = "Load SSH keys from gopass password store";
- env = {
- GNUPGHOME = config.home.sessionVariables.GNUPGHOME;
- GOPASS_SSH_KEYS = lib.concatStringsSep " " gopassKeys;
- };
- deps = with pkgs; [
- config.security.gopass.package
- gnupg
- openssh
- bash
- ];
- inherit config;
- };
-in
-{
- options = base.options;
- config = base.moduleConfig;
-}
diff --git a/modules/scripts/gopass-ssh-load/script.sh b/modules/scripts/gopass-ssh-load/script.sh
deleted file mode 100644
index c6b9a29..0000000
--- a/modules/scripts/gopass-ssh-load/script.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env bash
-set -o errexit
-set -o nounset
-set -o pipefail
-
-# Load SSH keys from gopass password store
-export GNUPGHOME="${GNUPGHOME:-$HOME/.local/share/gnupg}"
-
-SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
-export SSH_AUTH_SOCK
-if [ -z "$SSH_AUTH_SOCK" ] || [ ! -S "$SSH_AUTH_SOCK" ]; then
- echo "Error: SSH_AUTH_SOCK is not set or valid." >&2
- exit 1
-fi
-
-if ssh-add -l 2>/dev/null | grep -qE "(ED25519|RSA|ECDSA)"; then
- exit 0
-fi
-
-# GOPASS_SSH_KEYS holds a space-separated list of gopass entry names under ssh
-if [ -z "${GOPASS_SSH_KEYS:-}" ]; then
- echo "Error: GOPASS_SSH_KEYS is not set. Example: GOPASS_SSH_KEYS=\"github gitlab\"" >&2
- exit 1
-fi
-
-# shellcheck disable=SC2086
-read -r -a keys <<< "$GOPASS_SSH_KEYS"
-
-for key in "${keys[@]}"; do
- if gopass cat "ssh/$key" > /dev/null 2>&1; then
- tmpdir=$(mktemp -d)
- keyfile="$tmpdir/key"
- gopass cat "ssh/$key" > "$keyfile" 2>/dev/null
- chmod 600 "$keyfile"
-
- passphrase=$(gopass cat "ssh/$key/passphrase" 2>/dev/null || true)
- if [ -n "$passphrase" ]; then
- ssh-keygen -p -P "$passphrase" -N "" -f "$keyfile" 2>/dev/null
- fi
-
- ssh-add "$keyfile" 2>/dev/null
- rm -rf "$tmpdir"
- else
- echo "Warning: no gopass entry ssh/$key" >&2
- fi
-done