[fx run] add //.ssh/authorized_keys before booting

This enables SSH into qemu instances that have networking, without having to
bake SSH keys into the build artifacts.

Change-Id: I19aa146cd752622ab79018180cfdc06aee1f2a7c
diff --git a/devshell/run b/devshell/run
index b5ef78d..7dd07fd 100755
--- a/devshell/run
+++ b/devshell/run
@@ -14,23 +14,28 @@
 
 # Construction of a qcow image prevents qemu from writing back to the
 # build-produced image file, which could cause timestamp issues with that file.
-qcowdir="$(mktemp -d)"
-if [[ ! -d "${qcowdir}" ]]; then
+# Construction of the new ZBI adds //.ssh/authorized_keys for SSH access.
+imgdir="$(mktemp -d)"
+if [[ ! -d "${imgdir}" ]]; then
   echo >&2 "Failed to create temporary directory"
   exit 1
 fi
-qimg="${qcowdir}/fuchsia.qcow2"
-trap 'rm "${qimg}" && rmdir "${qcowdir}"' EXIT
+qimg="${imgdir}/fuchsia.qcow2"
+kernelzbi="${imgdir}/fuchsia-ssh.zbi"
+trap 'rm "${qimg}" "${kernelzbi}" && rmdir "${imgdir}"' EXIT
 
 "${qemu_dir}/qemu-img" create -f qcow2 -b "${FUCHSIA_BUILD_DIR}/${IMAGE_FVM_RAW}" \
   "${qimg}"
 
+"${ZIRCON_TOOLS_DIR}/zbi" -o "${kernelzbi}" "${FUCHSIA_BUILD_DIR}/${IMAGE_ZIRCONA_ZBI}" \
+  --entry "data/ssh/authorized_keys=${FUCHSIA_DIR}/.ssh/authorized_keys"
+
 "${FUCHSIA_DIR}/zircon/scripts/run-zircon" \
   -a "${FUCHSIA_ARCH}" \
   -q "${qemu_dir}" \
   -G 3 \
   -t "${FUCHSIA_BUILD_DIR}/${IMAGE_QEMU_KERNEL_RAW}" \
-  -z "${FUCHSIA_BUILD_DIR}/${IMAGE_ZIRCONA_ZBI}" \
+  -z "${kernelzbi}" \
   -d \
   -D "${qimg}" \
   --diskfmt="qcow2" \