From ebcfc4802c57ead6da188b710cc234cdb02cb763 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Sun, 23 Nov 2008 00:46:19 +0100 Subject: [PATCH] mkinitramfs: split ssh plugin into library and script --- .../install/D%libdir_40-ssh.sh.txt | 12 ++--- base/mkinitramfs/install/D%libdir_ssh.in.txt | 46 +++++++++++++++++++ 2 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 base/mkinitramfs/install/D%libdir_ssh.in.txt diff --git a/base/mkinitramfs/install/D%libdir_40-ssh.sh.txt b/base/mkinitramfs/install/D%libdir_40-ssh.sh.txt index 4c80ef5a5..5a3b02853 100644 --- a/base/mkinitramfs/install/D%libdir_40-ssh.sh.txt +++ b/base/mkinitramfs/install/D%libdir_40-ssh.sh.txt @@ -13,16 +13,12 @@ # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- +. "$libdir/ssh.in" # host keys -echo "Injecting SSH Host Keys" -for hostkey in $( ls -1 $root/etc/ssh/ssh_host* ); do - cp -v "$root/$hostkey" "$tmpdir/etc/ssh/" +for x in rsa dsa; do + openssh_install_hostkey "$x" done # root authorized_keys -if [ -s "$root/root/.ssh/authorized_keys" ]; then - echo "Injecting Root Authorized Keys" - cp -v "$root/root/.ssh/authorized_keys" "$tmpdir/root/.ssh/" -fi - +openssh_install_authorized_keys diff --git a/base/mkinitramfs/install/D%libdir_ssh.in.txt b/base/mkinitramfs/install/D%libdir_ssh.in.txt new file mode 100644 index 000000000..ba5674ac9 --- /dev/null +++ b/base/mkinitramfs/install/D%libdir_ssh.in.txt @@ -0,0 +1,46 @@ +#!/bin/sh +# --- SDE-COPYRIGHT-NOTE-BEGIN --- +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# +# Filename: package/.../mkinitramfs/install/D%libdir_ssh.in.txt +# Copyright (C) 2008 The OpenSDE Project +# +# More information can be found in the files COPYING and README. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. A copy of the +# GNU General Public License can be found in the file COPYING. +# --- SDE-COPYRIGHT-NOTE-END --- + +openssh_hostkey() { + case "$1" in + rsa|dsa) + echo "/etc/ssh/ssh_host_${1}_key" + ;; + esac +} + +openssh_has_hostkey() { + local key=$(openssh_hostkey "$1") + + [ -n "$key" -a -s "$root$key" ] +} + +openssh_install_hostkey() { + local key=$(openssh_hostkey "$1") + if [ -n "$key" -a -s "$root$key" ]; then + echo "Injecting OpenSSH Host Key ($1)..." + cp -vf "$root$key" "$tmpdir$key" + else + false + fi +} + +openssh_install_authorized_keys() { + local ak="/root/.ssh/authorized_keys" + if [ -s "$root$ak" ]; then + echo "Injecting root's ssh Authorized Keys" + cp -v "$root$ak" "$tmpdir$ak" + fi +}