summaryrefslogtreecommitdiff
path: root/factory-default
diff options
context:
space:
mode:
Diffstat (limited to 'factory-default')
-rw-r--r--factory-default/net-misc/openssh/etc/conf.d/ssh-agent8
-rwxr-xr-xfactory-default/net-misc/openssh/etc/init.d/ssh-agent47
2 files changed, 55 insertions, 0 deletions
diff --git a/factory-default/net-misc/openssh/etc/conf.d/ssh-agent b/factory-default/net-misc/openssh/etc/conf.d/ssh-agent
new file mode 100644
index 00000000..ba965f1d
--- /dev/null
+++ b/factory-default/net-misc/openssh/etc/conf.d/ssh-agent
@@ -0,0 +1,8 @@
+# Run ssh-agent as user
+SSH_AGENT_USER=apache
+
+# Path to the ssh-agent socket
+SSH_AGENT_SOCK=/run/ssh-agent.sock
+
+# Key to ssh-add
+SSH_AGENT_KEY=
diff --git a/factory-default/net-misc/openssh/etc/init.d/ssh-agent b/factory-default/net-misc/openssh/etc/init.d/ssh-agent
new file mode 100755
index 00000000..d43f1b5d
--- /dev/null
+++ b/factory-default/net-misc/openssh/etc/init.d/ssh-agent
@@ -0,0 +1,47 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+: ${envfile:=/run/${RC_SVCNAME}.env}
+: ${pidfile:=/run/${RC_SVCNAME}.pid}
+
+: ${SSH_AGENT_USER:=nobody}
+: ${SSH_AGENT_SOCK:=/run/${RC_SVCNAME}.sock}
+: ${SSH_AGENT_KEY:=}
+
+checkconfig() {
+ checkpath --quiet --file \
+ --owner root --mode 0600 \
+ "${envfile}"
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Starting ssh-agent (${SSH_AGENT_USER})"
+ start-stop-daemon --start \
+ --user "${SSH_AGENT_USER}" \
+ --pidfile "${pidfile}" \
+ --exec /usr/bin/ssh-agent \
+ -- -a "${SSH_AGENT_SOCK}" \
+ > "${envfile}" \
+ || die "ssh-agent fail to start"
+ eend $?
+
+ source "${envfile}" > /dev/null
+ rm -f "${envfile}"
+
+ if [[ -z ${SSH_AGENT_PID} ]] ; then
+ die "ssh-agent generate to PID"
+ fi
+
+ echo "${SSH_AGENT_PID}" > "${pidfile}"
+ unset SSH_AGENT_PID SSH_AUTH_SOCK
+
+ if [[ ${SSH_AGENT_KEY} ]] ; then
+ ebegin "Registering private key ${SSH_AGENT_KEY})"
+ SSH_AUTH_SOCK="${SSH_AGENT_SOCK}" ssh-add "${SSH_AGENT_KEY}"
+ eend $?
+ fi
+}