@@ -95,7 +95,6 @@ buildOnRemote=n
95
95
96
96
declare -A diskEncryptionKeys
97
97
declare -a nixCopyOptions
98
- declare -a sshCopyIdArgs
99
98
declare -a sshArgs
100
99
101
100
while [[ $# -gt 0 ]]; do
@@ -286,14 +285,6 @@ if [[ -z ${sshConnection-} ]]; then
286
285
abort " ssh-host must be set"
287
286
fi
288
287
289
- # we generate a temporary ssh keypair that we can use during nixos-anywhere
290
- ssh_key_dir=$( mktemp -d)
291
- trap ' rm -rf "$ssh_key_dir"' EXIT
292
- mkdir -p " $ssh_key_dir "
293
- # ssh-copy-id requires this directory
294
- mkdir -p " $HOME /.ssh/"
295
- ssh-keygen -t ed25519 -f " $ssh_key_dir " /nixos-anywhere -P " " -C " nixos-anywhere" > /dev/null
296
-
297
288
# parse flake nixos-install style syntax, get the system attr
298
289
if [[ -n ${flake-} ]]; then
299
290
if [[ $flake =~ ^(.* )\# ([^\#\" ]* )$ ]]; then
@@ -329,22 +320,31 @@ if [[ -n ${SSH_PRIVATE_KEY} ]] && [[ -z ${sshPrivateKeyFile-} ]]; then
329
320
)
330
321
fi
331
322
332
- if [[ -n ${sshPrivateKeyFile} ]]; then
333
- unset SSH_AUTH_SOCK # don't use system agent if key was supplied
334
- sshCopyIdArgs+=(-o " IdentityFile=${sshPrivateKeyFile} " -f)
335
- fi
336
-
337
323
sshSettings=$( ssh " ${sshArgs[@]} " -G " ${sshConnection} " )
338
324
sshUser=$( echo " $sshSettings " | awk ' /^user / { print $2 }' )
339
325
sshHost=$( echo " $sshSettings " | awk ' /^hostname / { print $2 }' )
340
326
341
327
uploadSshKey () {
328
+ # we generate a temporary ssh keypair that we can use during nixos-anywhere
329
+ sshKeyDir=$( mktemp -d)
330
+ trap ' rm -rf "$ssh_key_dir"' EXIT
331
+ mkdir -p " $sshKeyDir "
332
+ # ssh-copy-id requires this directory
333
+ mkdir -p " $HOME /.ssh/"
334
+ ssh-keygen -t ed25519 -f " $sshKeyDir " /nixos-anywhere -P " " -C " nixos-anywhere" > /dev/null
335
+
336
+ declare -a sshCopyIdArgs
337
+ if [[ -n ${sshPrivateKeyFile} ]]; then
338
+ unset SSH_AUTH_SOCK # don't use system agent if key was supplied
339
+ sshCopyIdArgs+=(-o " IdentityFile=${sshPrivateKeyFile} " -f)
340
+ fi
341
+
342
342
step Uploading install SSH keys
343
343
until
344
344
if [[ -n ${envPassword-} ]]; then
345
345
sshpass -e \
346
346
ssh-copy-id \
347
- -i " $ssh_key_dir " /nixos-anywhere.pub \
347
+ -i " $sshKeyDir " /nixos-anywhere.pub \
348
348
-o ConnectTimeout=10 \
349
349
-o UserKnownHostsFile=/dev/null \
350
350
-o IdentitiesOnly=yes \
@@ -354,7 +354,7 @@ uploadSshKey() {
354
354
" $sshConnection "
355
355
else
356
356
ssh-copy-id \
357
- -i " $ssh_key_dir " /nixos-anywhere.pub \
357
+ -i " $sshKeyDir " /nixos-anywhere.pub \
358
358
-o ConnectTimeout=10 \
359
359
-o UserKnownHostsFile=/dev/null \
360
360
-o StrictHostKeyChecking=no \
@@ -461,7 +461,7 @@ runDisko() {
461
461
--derivation --no-check-sigs
462
462
diskoScript=$(
463
463
nixBuild " ${flake} #nixosConfigurations.\" ${flakeAttr} \" .config.system.build.diskoScript" \
464
- --eval-store auto --store " ssh-ng://$sshConnection ?ssh-key=$ssh_key_dir /nixos-anywhere"
464
+ --eval-store auto --store " ssh-ng://$sshConnection ?ssh-key=$sshKeyDir /nixos-anywhere"
465
465
)
466
466
fi
467
467
@@ -480,7 +480,7 @@ nixosInstall() {
480
480
--derivation --no-check-sigs
481
481
nixosSystem=$(
482
482
nixBuild " ${flake} #nixosConfigurations.\" ${flakeAttr} \" .config.system.build.toplevel" \
483
- --eval-store auto --store " ssh-ng://$sshConnection ?ssh-key=$ssh_key_dir /nixos-anywhere&remote-store=local?root=/mnt"
483
+ --eval-store auto --store " ssh-ng://$sshConnection ?ssh-key=$sshKeyDir /nixos-anywhere&remote-store=local?root=/mnt"
484
484
)
485
485
fi
486
486
0 commit comments