Skip to content

Commit b957b44

Browse files
committed
nixos-anywhere: don't prompt SSH agent after deployment key installed
1 parent 9eab3c1 commit b957b44

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/nixos-anywhere.sh

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ mkdir -p "$sshKeyDir"
6565
declare -A diskEncryptionKeys=()
6666
declare -A extraFilesOwnership=()
6767
declare -a nixCopyOptions=()
68-
declare -a sshArgs=("-i" "$sshKeyDir/nixos-anywhere" "-o" "UserKnownHostsFile=/dev/null" "-o" "StrictHostKeyChecking=no")
68+
declare -a sshArgs=("-o" "IdentitiesOnly=yes" "-i" "$sshKeyDir/nixos-anywhere" "-o" "UserKnownHostsFile=/dev/null" "-o" "StrictHostKeyChecking=no")
6969

7070
showUsage() {
7171
cat <<USAGE
@@ -474,26 +474,21 @@ uploadSshKey() {
474474
ssh-keygen -t ed25519 -f "$sshKeyDir"/nixos-anywhere -P "" -C "nixos-anywhere" >/dev/null
475475
fi
476476

477-
declare -a sshCopyIdArgs
478-
if [[ -n ${sshPrivateKeyFile} ]]; then
479-
unset SSH_AUTH_SOCK # don't use system agent if key was supplied
480-
sshCopyIdArgs+=(-o "IdentityFile=${sshPrivateKeyFile}" -f)
481-
fi
482-
483477
step Uploading install SSH keys
484478
until
485479
if [[ ${envPassword} == y ]]; then
486480
sshpass -e \
487481
ssh-copy-id \
488482
-o ConnectTimeout=10 \
489-
-o IdentitiesOnly=yes \
490-
"${sshCopyIdArgs[@]}" \
491483
"${sshArgs[@]}" \
492484
"$sshConnection"
493485
else
486+
# To override `IdentitiesOnly=yes` set in `sshArgs` we need to set
487+
# `IdentitiesOnly=no` first as the first time an SSH option is
488+
# specified on the command line takes precedence
494489
ssh-copy-id \
490+
-o IdentitiesOnly=no \
495491
-o ConnectTimeout=10 \
496-
"${sshCopyIdArgs[@]}" \
497492
"${sshArgs[@]}" \
498493
"$sshConnection"
499494
fi

0 commit comments

Comments
 (0)