diff --git a/misc/borg.sh b/misc/borg.sh
index 61f17c101884acc68e31b0537ee804c7cabf430a..ce569bf004f00190040aaebc9c21f6f40dbd2dd0 100755
--- a/misc/borg.sh
+++ b/misc/borg.sh
@@ -4,14 +4,15 @@ set -eu
 shopt -s extglob
 
 OFFSITE_HOST=ch-s012.rsync.net
+ROOT_DIR=$(dirname "${0}")/..
 
-decrypted_gpg=$(mktemp)
-trap "rm \"${decrypted_gpg}\"" EXIT
+decrypted_gpg=$(mktemp arch-infrastructure-borg-XXXXXXXXX)
+trap "rm -f \"${decrypted_gpg}\"" EXIT
 [[ "$*" =~ $OFFSITE_HOST ]] && is_offsite=true || is_offsite=false
 
 # Find matching key
 matching_key=""
-for gpgkey in borg-keys/!(*-offsite.gpg); do
+for gpgkey in "$ROOT_DIR"/borg-keys/!(*-offsite.gpg); do
     key=$(basename "$gpgkey" .gpg)
     if [[ "$*" =~ $key ]]; then
         matching_key="$key"
@@ -25,7 +26,7 @@ if [[ -z "$matching_key" ]]; then
     echo "No matching keyfile found for this host"
     exit 1
 fi
-gpg --batch --yes --decrypt -aq --output "$decrypted_gpg" borg-keys/"$matching_key.gpg"
+gpg --batch --yes --decrypt -aq --output "$decrypted_gpg" "$ROOT_DIR/borg-keys/$matching_key.gpg"
 
 BORG_KEY_FILE="$decrypted_gpg" borg "$@"