Le Tue, Aug 10, 2010 at 04:49:51PM -0400, Kyle Moffett a écrit :
> 
> When performing partially-automated virtual-server installations (using
> services such as Eucalyptus or Amazon EC2, for example), it's not really
> practical or secure to use password-based authentication for the
> installer.
> 
> Furthermore, such virtual server environments provide an automatic
> method of provisioning public SSH keys during the installation process
> via an HTTP URL.
> 
> The Ubuntu guys seem to have a patch for this that never got merged:
>   https://bugs.launchpad.net/ubuntu/+source/network-console/+bug/184108

Dear all,

I think that it would wonderful if Ubuntu's patch were applied in Debian.  Here
is a slimmed down version of it, where I removed the Ubuntu-specific parts
changing debian/control, the changelog and .gitignore files, …

http://patches.ubuntu.com/n/network-console/network-console_1.28ubuntu1.patch

--- 1.28/debian/network-console.postinst        2011-01-19 04:51:17.000000000 
+0000
+++ 1.28ubuntu1/debian/network-console.postinst 2011-05-04 00:19:29.000000000 
+0100
@@ -26,7 +26,30 @@ case "$ARCHDETECT" in
        ;;
 esac
 
-while [ -z "$PASSWORD" ]; do
+db_get $TEMPLATE_ROOT/authorized_keys_url
+
+AUTHORIZED_KEYS_URL="$RET"
+AUTHORIZED_KEYS_DIRECTORY="/.ssh"
+AUTHORIZED_KEYS_FILE="$AUTHORIZED_KEYS_DIRECTORY/authorized_keys"
+
+if [ -n "$AUTHORIZED_KEYS_URL" ]; then
+       if [ ! -f "$AUTHORIZED_KEYS_FILE" ]; then
+               [ -d "$AUTHORIZED_KEYS_DIRECTORY" ] || \
+                   mkdir "$AUTHORIZED_KEYS_DIRECTORY"
+               chmod 0700 "$AUTHORIZED_KEYS_DIRECTORY"
+               if ! wget -q "$AUTHORIZED_KEYS_URL" -O "$AUTHORIZED_KEYS_FILE"; 
then
+                       db_subst $TEMPLATE_ROOT/authorized_keys_fetch_failure \
+                           LOCATION "$AUTHORIZED_KEYS_URL"
+                       db_input critical 
$TEMPLATE_ROOT/authorized_keys_fetch_failure \
+                           || true
+                       db_go
+                       exit 1
+               fi
+               chmod 0644 "$AUTHORIZED_KEYS_FILE" || true
+       fi
+fi
+
+while [ ! -f "$AUTHORIZED_KEYS_FILE" ] && [ -z "$PASSWORD" ]; do
        db_input critical $TEMPLATE_ROOT/password || true
        COMPARE_PW=''
        db_input high $TEMPLATE_ROOT/password-again && COMPARE_PW=1 || true
diff -pruN 1.28/debian/network-console.templates 
1.28ubuntu1/debian/network-console.templates
--- 1.28/debian/network-console.templates       2011-01-19 04:51:17.000000000 
+0000
+++ 1.28ubuntu1/debian/network-console.templates        2011-05-04 
00:19:29.000000000 +0100
@@ -75,3 +75,19 @@ _Description: Start SSH
  .
  Please check this carefully against the fingerprint reported by
  your SSH client.
+
+Template: network-console/authorized_keys_url
+Type: string
+Description: for internal use; can be preseeded
+ What URL contains a list of authorized SSH public keys?
+ .
+ The file at the given URL should be of the same form as a standard OpenSSH
+ authorized_keys file.
+
+Template: network-console/authorized_keys_fetch_failure
+Type: error
+# should be translated when committed upstream
+Description: Could not fetch OpenSSH authorized keys
+ An error occurred while fetching OpenSSH authorized keys from ${LOCATION}.
+ .
+ Check /var/log/syslog or see virtual console 4 for the details.


Please let me know how I can help to make this happen.

Cheers,

-- 
Charles Plessy
Tsurumi, Kanagawa, Japan



--
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110910133008.ga4...@plessy.org

Reply via email to