From e6ebe2e2aadef7a1ff4284fb6419e6e7fd196b8e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 23 Nov 2006 17:43:28 +0000 Subject: [PATCH] * Add an Upstart job for sshd. The start script automatically creates an sshd user, a host key, etc. svn path=/nixu/trunk/; revision=7096 --- test/boot-environment.nix | 5 +++++ test/boot-stage-2-init.sh | 1 + test/upstart-jobs/sshd.nix | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 test/upstart-jobs/sshd.nix diff --git a/test/boot-environment.nix b/test/boot-environment.nix index 887e8feb978a..aecb23fd4b33 100644 --- a/test/boot-environment.nix +++ b/test/boot-environment.nix @@ -102,6 +102,11 @@ rec { dhcp = pkgs.dhcpWrapper; }) + # SSH daemon. + (import ./upstart-jobs/sshd.nix { + inherit (pkgs) openssh; + }) + # Handles the maintenance/stalled event (single-user shell). (import ./upstart-jobs/maintenance-shell.nix { inherit (pkgs) bash; diff --git a/test/boot-stage-2-init.sh b/test/boot-stage-2-init.sh index a93d22d24700..75ff879883e4 100644 --- a/test/boot-stage-2-init.sh +++ b/test/boot-stage-2-init.sh @@ -93,6 +93,7 @@ fi # Set up the Upstart jobs. export UPSTART_CFG_DIR=/etc/event.d +rm -f /etc/event.d ln -sf @upstartJobs@/etc/event.d /etc/event.d diff --git a/test/upstart-jobs/sshd.nix b/test/upstart-jobs/sshd.nix new file mode 100644 index 000000000000..919a96dda5a7 --- /dev/null +++ b/test/upstart-jobs/sshd.nix @@ -0,0 +1,32 @@ +{openssh}: + +{ + name = "sshd"; + + job = " +description \"SSH server\" + +start on network-interfaces/started +stop on network-interfaces/stop + +start script + mkdir -m 0555 -p /var/empty + + mkdir -m 0755 -p /etc/ssh + + echo 'X11Forwarding yes' > /etc/ssh/sshd_config + + if ! test -f /etc/ssh/ssh_host_dsa_key; then + ${openssh}/bin/ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -N '' + fi + + if ! grep -q '^sshd:' /etc/passwd; then + echo 'sshd:x:74:74:SSH privilege separation user:/var/empty:/noshell' >> /etc/passwd + fi + +end script + +respawn ${openssh}/sbin/sshd -h /etc/ssh/ssh_host_dsa_key -f /etc/ssh/sshd_config + "; + +}