# Copyright (c) 2023 Intel Corporatiion
#
# SPDX-License-Identifier: Apache-2.0

# We know that using latest is error prone, we're taking the risk here.
# hadolint ignore=DL3007
FROM alpine:latest

# We don't need a specific version of those packages
# hadolint ignore=DL3018
RUN apk add --no-cache curl openssh-server

# Download and install `cpuid`, which will be used to detect
# whether we're the container is running on a TEE guest
# hadolint ignore=DL3059
RUN /bin/sh -c \
    'ARCH=$(uname -m) && \
    [[ "${ARCH}" == "x86_64" ]] && \
    curl -LO https://github.com/klauspost/cpuid/releases/download/v2.2.7/cpuid-Linux_x86_64_2.2.7.tar.gz && \
    tar -xvzf cpuid-Linux_x86_64_2.2.7.tar.gz  -C /usr/bin && \
    rm -rf cpuid-Linux_x86_64_2.2.7.tar.gz && \
    rm -f /usr/bin/LICENSE' || true

# This is done just to avoid the following error starting sshd
# `sshd: no hostkeys available -- exiting.`
# hadolint ignore=DL3059
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -P ""

# A password needs to be set for login to work. An empty password is
# unproblematic as password-based login to root is not allowed.
# hadolint ignore=DL3059
RUN passwd -d root

# Generated with `ssh-keygen -t ed25519 -f unencrypted -P "" -C ""`
COPY ssh/unencrypted.pub /root/.ssh/authorized_keys

# Set correct permissions for SSH folders and files
RUN chmod 700 /root/.ssh
RUN chmod 600 /root/.ssh/authorized_keys

ENTRYPOINT ["/usr/sbin/sshd", "-D"]
