node is hostname
This commit is contained in:
@@ -26,9 +26,12 @@ RUN cp /usr/share/doc/libpam-script/examples/logscript /usr/share/libpam-script
|
||||
WORKDIR /app
|
||||
COPY ${DOCKER_BUILD_DIR}/*.sh /app/
|
||||
|
||||
ARG SSH_PORT=22
|
||||
CMD []
|
||||
ENTRYPOINT ["/app/run.sh"]
|
||||
HEALTHCHECK CMD timeout 1 bash -c "</dev/tcp/localhost/22" 2>/dev/null
|
||||
EXPOSE ${SSH_PORT:-22}
|
||||
RUN echo "${SSH_PORT}" > /app/.ssh_port
|
||||
HEALTHCHECK CMD timeout 1 bash -c "</dev/tcp/localhost/$(cat /app/.ssh_port 2>/dev/null)" 2>/dev/null
|
||||
|
||||
FROM dist as master
|
||||
ARG DOCKER_BUILD_DIR
|
||||
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
[ -n "${DEBUG}" ] && set -x
|
||||
set -eu
|
||||
|
||||
user=${1:-${USER}}
|
||||
domain=${USER/*@}
|
||||
|
||||
[ -f "/home/${user}/.ssh/authorized_keys" ] \
|
||||
&& authorized_keys=$(cat "/home/${user}/.ssh/authorized_keys" 2>/dev/null)
|
||||
if [ -n "${authorized_keys:-}" ]; then
|
||||
echo "${authorized_keys:-}"
|
||||
elif [ -n "${SSH_AUTHORIZED_KEYS:-}" ]; then
|
||||
for host in ${SSH_AUTHORIZED_KEYS:-}; do
|
||||
wget -qO - "${host}" 2>/dev/null && break
|
||||
done
|
||||
elif [ -n "${user}" ]; then
|
||||
# if no domain
|
||||
if [ "${domain}" = "${user}" ]; then
|
||||
for host in ${SSH_PUBLIC_HOSTS:-}; do
|
||||
wget -qO - "https://${host}/${user}.keys" 2>/dev/null && break
|
||||
done
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -10,9 +10,7 @@ if [ ! -f /app/.setup_done ]; then
|
||||
/app/setup_timezone.sh
|
||||
fi
|
||||
|
||||
/app/setup_ecryptfs.sh /dev/shm
|
||||
# /shared encryption will not survive on restart
|
||||
/app/setup_ecryptfs.sh /shared
|
||||
/app/setup_ecryptfs.sh /dev/shm &
|
||||
/app/setup_users.sh
|
||||
|
||||
## Start-up our services manually (since Docker container will not invoke all init scripts).
|
||||
@@ -50,6 +48,6 @@ if [ $# -eq 0 ]; then
|
||||
PID=$! && wait
|
||||
else
|
||||
# WARNING: cleanup is not called
|
||||
exec /bin/bash -c "set -e && $*"
|
||||
exec su ${USER:-root} /bin/bash -c "set -e && $*"
|
||||
fi
|
||||
cleanup
|
||||
|
||||
@@ -11,6 +11,7 @@ sed -i "s/^#\?PermitUserEnvironment.*/PermitUserEnvironment no/g" /etc/ssh/sshd_
|
||||
sed -i "s/^#\?PrintLastLog.*/PrintLastLog yes/g" /etc/ssh/sshd_config
|
||||
sed -i "s/^#\?PubkeyAuthentication.*/PubkeyAuthentication yes/g" /etc/ssh/sshd_config
|
||||
sed -i "s/^#\?X11Forwarding.*/X11Forwarding no/g" /etc/ssh/sshd_config
|
||||
sed -i "s/^#\?Port.*/Port ${SSH_PORT:-22}/g" /etc/ssh/sshd_config
|
||||
|
||||
cat >> /etc/ssh/sshd_config <<EOF
|
||||
Match group x2gouser
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
[ -n "${DEBUG}" ] && set -x
|
||||
set -eu
|
||||
|
||||
for user in ${USERS:-${USERNAME}}; do
|
||||
for user in ${USERS:-${USER:-user}}; do
|
||||
id "${user}" > /dev/null 2>&1 || useradd -s /bin/bash "${user}"
|
||||
[ ! -d "/home/${user}" ] \
|
||||
&& mkdir -p "/home/${user}" \
|
||||
@@ -15,9 +15,9 @@ for user in ${USERS:-${USERNAME}}; do
|
||||
done
|
||||
usermod -a -G x2gouser "${user}"
|
||||
mkdir -p "/home/${user}/.ssh"
|
||||
wget -qO "/home/${user}/.ssh/authorized_keys" "https://gitlab.com/${user}.keys" 2>/dev/null \
|
||||
|| wget -qO "/home/${user}/.ssh/authorized_keys" "https://github.com/${user}.keys" 2>/dev/null \
|
||||
|| echo "WARNING: Unable to fetch ssh public keys for user ${user}."
|
||||
keys=$(su "${user}" /app/authorized_keys.sh 2>/dev/null) \
|
||||
&& echo "${keys}" > "/home/${user}/.ssh/authorized_keys" \
|
||||
|| echo "WARNING: Unable to fetch authorized keys for ssh user ${user}."
|
||||
chown "${user}" "/home/${user}/.ssh" "/home/${user}/.ssh/authorized_keys"
|
||||
done
|
||||
for sudoer in ${SUDOERS:-}; do
|
||||
@@ -29,5 +29,5 @@ for ecrypter in ${ECRYPTERS:-}; do
|
||||
touch "/home/${ecrypter}/.ecryptfs/auto-umount"
|
||||
chown -R "${ecrypter}" "/home/${ecrypter}/.ecryptfs"
|
||||
done
|
||||
ln -s /app/setup_ecryptfs_sshagent.sh /etc/profile.d/
|
||||
cp /app/setup_ecryptfs_sshagent.sh /etc/profile.d/
|
||||
mkdir -p /shared && chmod 1777 /shared
|
||||
|
||||
Reference in New Issue
Block a user