J'ai eu de sérieux problèmes pour faire transférer ssh-agent dans le conteneur docker (avec mon installation docker-compose). J'ai Mac exécutant Catalina, avec docker-engine 19.03.8 et Compose @ 1.24. Voici mon fichier docker-compose:
version: '3.7'
services:
platform:
build:
context: .
dockerfile: ./platform/compose/Dockerfile.platform.local
working_dir: /root/platform
ports:
- "3000:3000"
command: ["./compose/scripts/start_Rails.sh"]
tty: true
stdin_open: true
volumes:
- type: bind
source: /run/Host-services/ssh-auth.sock
target: /run/Host-services/ssh-auth.sock
env_file: ./platform/.env
environment:
TERM: xterm-256color
SSH_AUTH_SOCK: /run/Host-services/ssh-auth.sock
volumes:
La façon dont j'ai configuré le transfert ssh-agent est comme spécifié dans documentation docker-compose
Le ./compose/scripts/start_Rails.sh
script fait bundle install && bundle exec Rails s
. J'ai quelques gemmes que je tire des référentiels privés et j'ai pensé que je devrais pouvoir installer ces gemmes en transférant ssh-agent.
J'ai également essayé de démarrer l'agent ssh avant de lancer le docker-compose, mais cela ne semble rien faire.
{
"debug": true,
"experimental": true,
"features": {
"buildkit": true
}
}
C'est ce que j'ai ajouté dans mon fichier de configuration docker. Toute aide est appréciée.
** MISE À JOUR: 0 **
Ce qui suit dans la structure et la configuration de mon répertoire .ssh:
arbre ~/.ssh
├── config
├── known_hosts
├── midhun
│ ├── id_rsa
│ └── id_rsa.pub
└── client
├── id_rsa
└── id_rsa.pub
cat ~/.ssh/config
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/client/id_rsa
Host me.github.com
HostName github.com
User git
IdentityFile ~/.ssh/midhun/id_rsa
MISE À JOUR: 1
J'ai mis à jour ma configuration avec ForwardAgent Yes
et cela n'a pas fonctionné non plus. J'ai enregistré des journaux ssh entiers dans ce Gist -> https://Gist.github.com/midhunkrishna/8f77ebdc90c7230d2ffae0834dc477cc .
Je crois que ci-dessous modifiez votre ~/.ssh/config
devrait résoudre le problème
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/client/id_rsa
ForwardAgent yes
Host me.github.com
HostName github.com
User git
IdentityFile ~/.ssh/midhun/id_rsa
ForwardAgent yes
Mise à jour 1: 5 mai 2020
Dans votre cas, la raison pour laquelle cela ne fonctionne pas est que l'agent sur l'hôte est sans clé.
Vous pouvez confirmer qu'en utilisant
$ ssh-add -L
$ ssh-add -l
L'agent ne transmettra que les clés qu'il a dans sa mémoire, rien sur votre disque. Sinon, vous risquez d'exposer chaque clé qui s'y trouve sans aucune autorisation. Ce que vous devez faire est de vous assurer d'ajouter ces clés à votre agent ssh au démarrage
$ ssh-add ~/.ssh/client/id_rsa
$ ssh-add ~/.ssh/midhun/id_rsa
Alors si vous faites ssh-add -L
sur l'hôte et le terminal docker d'initié, vous devriez voir les deux clés. Et l'agent ssh fonctionnera également