s sh - переадресация агента в docker - сложная среда не работает - PullRequest
6 голосов
/ 30 апреля 2020

У меня были серьезные проблемы с отправкой s sh -агента в контейнер docker (с моей docker -компонентной установкой). У меня Ma c под управлением Catalina, с docker - двигатель 19.03.8 и Compose @ 1.24. Ниже приведен мой docker -компонентный файл:

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:

Способ, которым я настроил s sh -агентное перенаправление, указан в docker -композиционной документации

Сценарий ./compose/scripts/start_rails.sh делает bundle install && bundle exec rails s. У меня есть несколько драгоценных камней, которые я извлекаю из частных репозиториев, и я подумал, что смогу установить эти драгоценные камни, перенаправив агент * sh.

Я также пытался запустить s sh -агент перед тем, как раскрутить docker -композицию, но, похоже, это ничего не делает.

{
  "debug": true,
  "experimental": true,
  "features": {
    "buildkit": true
  }
}

Это то, что я добавил в мой docker файл конфигурации. Любая помощь приветствуется.

** ОБНОВЛЕНИЕ: 0 **

В моей структуре каталогов .s sh приведено следующее:

tree ~ / .s sh

├── 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  

ОБНОВЛЕНИЕ: 1

Обновил мою конфигурацию с ForwardAgent Yes, и она не работала или. Я записал в этот список целых s sh -логов -> https://gist.github.com/midhunkrishna/8f77ebdc90c7230d2ffae0834dc477cc.

1 Ответ

2 голосов
/ 04 мая 2020

Я полагаю, что ниже измените ваш ~/.ssh/config, если проблема будет решена

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

Обновление 1: 5 мая 2020 года

В вашем случае причина этого может не работать из-за того, что агент на хосте не имеет ключа.

Вы можете подтвердить, что с помощью

$ ssh-add -L
$ ssh-add -l

Агент будет пересылать только те ключи, которые он имеет в своей памяти, ничего при этом твой диск. Иначе вы рискуете разоблачить каждый ключ, который там есть, без какого-либо разрешения. Что вам нужно сделать, это убедиться, что вы добавляете эти ключи к своему агенту s sh при запуске

$ ssh-add ~/.ssh/client/id_rsa
$ ssh-add ~/.ssh/midhun/id_rsa

Тогда, если вы выполните ssh-add -L на терминале хоста и инсайдера docker, вы должны увидеть оба ключи. И агент sh также будет работать

ssh-agent inside docker working

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...