X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;fp=grml-debootstrap;h=a87dbab67c702c12d8f24b8270ddb5e753056daf;hp=016daec250184843c81c8ce3e4270e5db3243188;hb=6359370c21819973a396b6277bcf3f04b25aa565;hpb=8b62d45fcb295cc9b0208d097ec6c9768a887540 diff --git a/grml-debootstrap b/grml-debootstrap index 016daec..a87dbab 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -155,6 +155,7 @@ Configuration options: --hostname Hostname of Debian system. --nopassword Do not prompt for the root password. --password Use specified password as password for user root. + --sshcopyid Use locally available public keys to authorise root login on the target system. --bootappend Add specified appendline to kernel whilst booting. --chroot-scripts Execute chroot scripts from specified directory. --pre-scripts Execute scripts from specified directory (before chroot-scripts). @@ -346,7 +347,7 @@ fi # }}} # cmdline handling {{{ -CMDLINE_OPTS=mirror:,iso:,release:,target:,mntpoint:,debopt:,defaultinterfaces,interactive,nodebootstrap,nointerfaces,nokernel,nopackages,filesystem:,config:,confdir:,packages:,chroot-scripts:,scripts:,post-scripts:,pre-scripts:,debconf:,vm,vmfile,vmsize:,keep_src_list,hostname:,password:,nopassword,grmlrepos,backportrepos,bootappend:,grub:,efi:,arch:,insecure,verbose,help,version,force,debug,contrib,non-free,remove-configs +CMDLINE_OPTS=mirror:,iso:,release:,target:,mntpoint:,debopt:,defaultinterfaces,interactive,nodebootstrap,nointerfaces,nokernel,nopackages,filesystem:,config:,confdir:,packages:,chroot-scripts:,scripts:,post-scripts:,pre-scripts:,debconf:,vm,vmfile,vmsize:,keep_src_list,hostname:,password:,nopassword,grmlrepos,backportrepos,bootappend:,grub:,efi:,arch:,insecure,verbose,help,version,force,debug,contrib,non-free,remove-configs,sshcopyid _opt_temp=$(getopt --name grml-debootstrap -o +m:i:r:t:p:c:d:vhV --long \ $CMDLINE_OPTS -- "$@") @@ -460,6 +461,9 @@ while :; do --nopassword) # Skip password dialog _opt_nopassword=T ;; + --sshcopyid) # Use locally available public keys to authorise root login on the target system + _opt_sshcopyid=T + ;; --grmlrepos) # Enable Grml repository _opt_grmlrepos=T ;; @@ -560,6 +564,7 @@ done [ "$_opt_defaultinterfaces" ] && USE_DEFAULT_INTERFACES="true" [ "$_opt_nointerfaces" ] && NOINTERFACES="true" [ "$_opt_nokernel" ] && NOKERNEL="true" +[ "$_opt_sshcopyid" ] && SSHCOPYID="true" [ "$_opt_bootappend" ] && BOOT_APPEND=$_opt_bootappend [ "$_opt_grub" ] && GRUB=$_opt_grub [ "$_opt_efi" ] && EFI=$_opt_efi @@ -1758,6 +1763,20 @@ iface ${interface} inet dhcp cp /etc/network/interfaces.examples "$MNTPOINT/etc/network/interfaces.examples" fi + if [ -n "${SSHCOPYID}" ] ; then + ssh-add -L > /dev/null 2>&1 ; RC=$? + if [ $RC -eq 0 ] ; then + einfo "Use locally available public keys to authorise root login on the target system as requested via --sshcopyid option." + mkdir "${MNTPOINT}"/root/.ssh + chmod 0700 "${MNTPOINT}"/root/.ssh + ssh-add -L > "${MNTPOINT}"/root/.ssh/authorized_keys + eend 0 + else + ewarn "Could not open a connection to your authentication agent or the agent has no identites." + eend $? + fi + fi + if [ -d /run/udev ] ; then einfo "Setting up bind-mount /run/udev" mkdir -p "${MNTPOINT}"/run/udev