php icon indicating copy to clipboard operation
php copied to clipboard

Mounting an ssh config file is overridden with the one in the container

Open kevinquillen opened this issue 3 years ago • 2 comments

I am trying to mount a .ssh/config file that contains:

Host *.ssh.prod.acquia-sites.com
PubkeyAcceptedAlgorithms +ssh-rsa

But when the container is restarted, the file contents are replaced with boilerplate:

#	$OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

Using PHP tag: 8.0-dev-4.35.0

kevinquillen avatar Apr 11 '22 16:04 kevinquillen

As I see it, this is something that happens at the following lines: https://github.com/wodby/php/blob/master/7/docker-entrypoint.sh#L80 https://github.com/wodby/php/blob/master/8/docker-entrypoint.sh#L79

To overcome this problem, I took the ssh_config.tmpl from https://github.com/wodby/php/tree/master/7/templates and moved it to a folder in my setup, outside the containers. I added there all the custom configurations we needed for specific domains.

Then I mount it as a volume like below

    volumes:
      - ./config/ssh_config.tmpl:/etc/gotpl/ssh_config.tmpl:cached

Now, it always has the necessary data we need. Hope that helps.

walkero-gr avatar May 19 '22 13:05 walkero-gr

Another workaround for those who extend the image.

RUN sed -i '/ssh_config.tmpl/d' /docker-entrypoint.sh

Chi-teck avatar Dec 18 '22 04:12 Chi-teck