From e83c1c357963c238f408d4d3b6a4388e578a9fed Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Thu, 23 Dec 2021 21:54:16 -0800 Subject: [PATCH] Updated SSHD to use public key --- public/v4/apps/sshd.yml | 57 +++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/public/v4/apps/sshd.yml b/public/v4/apps/sshd.yml index b4c40b8..5c49d28 100644 --- a/public/v4/apps/sshd.yml +++ b/public/v4/apps/sshd.yml @@ -1,50 +1,51 @@ captainVersion: 4 services: $$cap_appname: - ports: - - $$cap_sshd_port:22 + image: lscr.io/linuxserver/openssh-server:version-8.6_p1-r3 + environment: + PUID: 1001 + PGID: 1001 + TZ: Europe/London + PUBLIC_KEY: $$cap_sshd_public_key + # USER_PASSWORD: $$cap_sshd_public_key + # - PUBLIC_KEY_FILE=/path/to/file #optional + # - PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys #optional + # - PUBLIC_KEY_URL=https://github.com/username.keys #optional + # - SUDO_ACCESS=false #optional + # - PASSWORD_ACCESS=false #optional + # - USER_PASSWORD=password #optional + # - USER_PASSWORD_FILE=/path/to/file #optional + USER_NAME: $$cap_sshd_username volumes: - - $$cap_appname-data:/data - restart: always - environment: {} - caproverExtra: - dockerfileLines: - - FROM ubuntu:16.04 - - RUN apt-get update && apt-get install -y openssh-server - - RUN mkdir /var/run/sshd - - RUN echo 'root:$$cap_sshd_password' | chpasswd - - RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config - - '# SSH login fix. Otherwise user is kicked off after login' - - RUN sed 's@sessions*requireds*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd - - ENV NOTVISIBLE "in users profile" - - RUN echo "export VISIBLE=now" >> /etc/profile - - EXPOSE 22 - - CMD ["/usr/sbin/sshd", "-D"] + - $$cap_appname-config:/config + ports: + - $$cap_sshd_port:2222 caproverOneClickApp: variables: - - id: $$cap_sshd_password - label: Your SSH root password - description: Enter a secure password - defaultValue: pAsSwOrD - validRegex: /.{8,}/ + - id: $$cap_sshd_public_key + label: Your SSH public key + description: Enter your public key + - id: $$cap_sshd_username + label: Your SSH Username + defaultValue: 'caprover' - id: $$cap_sshd_port - label: Your SSH exposed port + label: Your SSH exposed port (your host mapped port) description: Enter a port number defaultValue: '4646' validRegex: /^\d+$/ instructions: start: >- - The following app sets up an SSHd service in a container that you can use to connect to and inspect other container’s volumes, or to get quick access to a test container. + The following app sets up an SSHd service in a container that you can use to connect to and inspect other container's volumes, or to get quick access to a test container. IMPORTANT: - This setup uses password login. You can optionally mount your keys and use public/private key to log in. + This setup uses **public key** login. end: >- The container is built and deployed. You can now connect to this container from your local machine by running the following command: - ssh root@IpAddressOfServer -p $$cap_sshd_port + ssh -i /path/to/private.key $$cap_sshd_username@$$cap_appname.$$cap_root_domain -p $$cap_sshd_port displayName: SSH Container isOfficial: true description: Just a simple container that has sshd installed so you can SSH directly into this container. - documentation: 'Taken from https://docs.docker.com/engine/examples/running_ssh_service/#build-an-eg_sshd-image ' + documentation: 'Taken from https://github.com/linuxserver/docker-openssh-server'