On Sunday 02 November 2014 12:46:40 Richard W.M. Jones wrote: > This adds a customize option: > > virt-customize --ssh-inject USER[=KEY] > virt-builder --ssh-inject USER[=KEY] > virt-sysprep --ssh-inject USER[=KEY] > > In each case this either injects the current (host) user's ssh pubkey > into the guest user USER (adding it to ~USER/.ssh/authorized_keys in > the guest), or you can specify a particular key. > > For example: > > virt-builder fedora-20 --ssh-inject root > > will add the local user's ssh pubkey into the root account of the > newly created guest. Or: > > virt-customize -a disk.img \ > --ssh-inject 'mary=ssh-rsa AAAA.... mary@localhost' > > adds the given ssh pubkey to mary's account in the guest.
I like the idea of this patch, I have just a couple of notes. > + (* Find the local [on the host] user's SSH public key. See > + * ssh-copy-id(1) default_ID_file for rationale. > + *) > + let pubkey_re = Str.regexp "^id.*\\.pub$" in > + let pubkey_ignore_re = Str.regexp ".*-cert\\.pub$" in > + > [...] > + let files = Sys.readdir ssh_dir in > + let files = Array.to_list files in > + let files = List.filter ( > + fun file -> > + Str.string_match pubkey_re file 0 && > + not (Str.string_match pubkey_ignore_re file 0) > + ) files in Small niptick: this might as well not use regexp. Also, it seems to handle either the most recent id*.pub key of the user, or a key specified as string. What about using a selector syntax for --ssh-inject, so: --ssh-inject USER <- recent id*.pub key --ssh-inject "USER:string:ssh-rsa AAAA.... user@localhost" <- string --ssh-inject USER:file:somekey.pub <- stored in a .pub file I can do the changes above, in case. Thanks, -- Pino Toscano _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
