diff --git a/Dockerfile b/Dockerfile index eeea1b5..0d257fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,8 +5,8 @@ ENV UID=1000 ENV GID=1000 # Add Folders and Shell Scripts -VOLUME ["/.ssh"] -VOLUME ["/backup"] +RUN mkdir "/.ssh" +VOLUME ["/backups"] COPY motd.txt /etc/motd COPY entrypoint.sh / @@ -20,5 +20,9 @@ RUN sed -ie 's/#Port 22/Port 22/g' /etc/ssh/sshd_config RUN sed -ie 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config RUN sed -ie 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config +RUN sed -ie 's|#HostKey /etc/ssh/ssh_host_rsa_key|HostKey /sshkeys/host/ssh_host_rsa_key|g' /etc/ssh/sshd_config +RUN sed -ie 's|#HostKey /etc/ssh/ssh_host_ecdsa_key|HostKey /sshkeys/host/ssh_host_ecdsa_key|g' /etc/ssh/sshd_config +RUN sed -ie 's|#HostKey /etc/ssh/ssh_host_ed25519_key|HostKey /sshkeys/host/ssh_host_ed25519_key|g' /etc/ssh/sshd_config + EXPOSE 22 ENTRYPOINT [ "/entrypoint.sh" ] diff --git a/entrypoint.sh b/entrypoint.sh index 4b41c5e..fb63612 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -5,20 +5,27 @@ touch "/.ssh/authorized_keys" # Add User sh -c "echo '$USER ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers" -addgroup -g "$GID" "$USER" + +echo "ADD USER: $USER WITH UID: $UID" adduser \ --disabled-password \ --gecos "" \ --home "/" \ - --ingroup "$USER" \ --uid "$UID" \ "$USER" echo "$USER:*" | chpasswd +echo "ADD GROUP: $USER WITH GID: $GID" +addgroup -g "$GID" "$USER" + +mkdir -p /sshkeys/clients +mkdir -p /sshkeys/host +chown -R "$USER":"$USER" "/sshkeys" # Add SSH Keys to authorized_keys -for key in /sshkeys/*.pub; do +FILES=$(ls -1 /sshkeys/clients) +for key in $FILES; do echo "Adding SSH-Key $key" - cat "$key" >> "/.ssh/authorized_keys" + cat "/sshkeys/clients/$key" >> "/.ssh/authorized_keys" done echo "" >> "/.ssh/authorized_keys" @@ -28,5 +35,16 @@ chmod 700 "/.ssh" chmod 600 "/.ssh/authorized_keys" # Generate SSH-Keys -ssh-keygen -A +if [ ! -f "/sshkeys/host/ssh_host_rsa_key" ]; then + ssh-keygen -t rsa -b 4096 -f "/sshkeys/host/ssh_host_rsa_key" -N "" +fi +if [ ! -f "/sshkeys/host/ssh_host_ecdsa_key" ]; then + ssh-keygen -t ecdsa -b 521 -f "/sshkeys/host/ssh_host_ecdsa_key" -N "" +fi +if [ ! -f "/sshkeys/host/ssh_host_ed25519_key" ]; then + ssh-keygen -t ed25519 -b 521 -f "/sshkeys/host/ssh_host_ed25519_key" -N "" +fi + +chown -R "$USER":"$USER" "/sshkeys/host" + exec /usr/sbin/sshd -D -e "$@"