mirror of
https://github.com/nix-community/nixos-anywhere.git
synced 2024-10-26 08:18:11 +03:00
Merge pull request #305 from a-kenji/add-password
feat: add copy-password
This commit is contained in:
commit
5f06770db9
@ -106,6 +106,12 @@ below.
|
||||
6. On the target machine, make sure you have access as root via ssh by adding
|
||||
your SSH key to the file `authorized_keys` in the directory `/root/.ssh`
|
||||
|
||||
Optionally, bootstrapping can also be performed through password login. For
|
||||
example through the `image-installer-*` provided by
|
||||
`nix-community/nixos-images`. Assign your password to the `SSH_PASS`
|
||||
environment variable and specify `--env-password` as an additional command
|
||||
line option. This will provide `ssh-copy-id` with the required password.
|
||||
|
||||
7. (Optional) Test your nixos and disko configuration:
|
||||
|
||||
The following command will automatically test your nixos configuration and
|
||||
|
@ -10,6 +10,7 @@
|
||||
, gawk
|
||||
, findutils
|
||||
, gnused
|
||||
, sshpass
|
||||
, terraform-docs
|
||||
, lib
|
||||
, makeWrapper
|
||||
@ -26,6 +27,7 @@ let
|
||||
gawk
|
||||
findutils
|
||||
gnused # needed by ssh-copy-id
|
||||
sshpass # used to provide password for ssh-copy-id
|
||||
rsync # used to upload extra-files
|
||||
];
|
||||
in
|
||||
|
@ -17,6 +17,9 @@ Options:
|
||||
set an ssh option
|
||||
* -L, --print-build-logs
|
||||
print full build logs
|
||||
* --env-password
|
||||
set a password used by ssh-copy-id, the password should be set by
|
||||
the environment variable SSH_PASS
|
||||
* -s, --store-paths <disko-script> <nixos-system>
|
||||
set the store paths to the disko-script and nixos-system directly
|
||||
if this is given, flake is not needed
|
||||
@ -162,6 +165,9 @@ while [[ $# -gt 0 ]]; do
|
||||
--build-on-remote)
|
||||
build_on_remote=y
|
||||
;;
|
||||
--env-password)
|
||||
env_password=y
|
||||
;;
|
||||
--vm-test)
|
||||
vm_test=y
|
||||
;;
|
||||
@ -288,6 +294,18 @@ ssh_port=$(echo "$ssh_settings" | awk '/^port / { print $2 }')
|
||||
|
||||
step Uploading install SSH keys
|
||||
until
|
||||
if [[ -n ${env_password-} ]]; then
|
||||
sshpass -e \
|
||||
ssh-copy-id \
|
||||
-i "$ssh_key_dir"/nixos-anywhere.pub \
|
||||
-o ConnectTimeout=10 \
|
||||
-o UserKnownHostsFile=/dev/null \
|
||||
-o IdentitiesOnly=yes \
|
||||
-o StrictHostKeyChecking=no \
|
||||
"${ssh_copy_id_args[@]}" \
|
||||
"${ssh_args[@]}" \
|
||||
"$ssh_connection"
|
||||
else
|
||||
ssh-copy-id \
|
||||
-i "$ssh_key_dir"/nixos-anywhere.pub \
|
||||
-o ConnectTimeout=10 \
|
||||
@ -296,6 +314,7 @@ until
|
||||
"${ssh_copy_id_args[@]}" \
|
||||
"${ssh_args[@]}" \
|
||||
"$ssh_connection"
|
||||
fi
|
||||
do
|
||||
sleep 3
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user