加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

SSH代理在docker compose容器内转发

发布时间:2020-12-16 03:43:24 所属栏目:安全 来源:网络整理
导读:无法打开与身份验证代理的连接. 我正在关注approach of mounting the $SSH_AUTH_SOCK as a volume,但是这样做了. 建立 的?/ .ssh /配置 Host * ForwardAgent yes Dockerfile: FROM atlashealth/ruby:2.2.2RUN apt-get update -qq apt-get install -qy bui

无法打开与身份验证代理的连接.

我正在关注approach of mounting the $SSH_AUTH_SOCK as a volume,但是这样做了.

建立

的?/ .ssh /配置

Host *
  ForwardAgent yes

Dockerfile:

FROM atlashealth/ruby:2.2.2

RUN apt-get update -qq && 
    apt-get install -qy build-essential libxml2-dev libxslt1-dev 
            g++ qt5-default libqt5webkit5-dev xvfb dbus 
            libmysqlclient-dev 
            mysql-client openssh-client git && 

    # cleanup
    apt-get clean && 
    cd /var/lib/apt/lists && rm -fr *Release* *Sources* *Packages* && 
    truncate -s 0 /var/log/*log

撰写yaml:

web:
  build: "."
  environment:
  - SSH_AUTH_SOCK=/ssh-agent
  volumes:
  - "$SSH_AUTH_SOCK:/ssh-agent"

注意:我在我的作品上运行插值,因此$SSH_AUTH_SOCK被/private/tmp/com.apple.launchd.ZxGtZy6a9w/Listeners替换.

我已经在主机OSX上正确转发设置,它可以与另一个ubuntu主机配合使用.

docker-compose运行web bash

在容器

当我运行ssh-add -L时,它声明无法打开与身份验证代理的连接.

当我运行ssh-agent时,它会产生

SSH_AUTH_SOCK=/tmp/ssh-vqjuo7FIfVOL/agent.21; export SSH_AUTH_SOCK;
SSH_AGENT_PID=22; export SSH_AGENT_PID;
echo Agent pid 22;

当我从bash运行echo $SSH_AUTH_SOCK时,它会产生/ ssh-agent

似乎compose使SSH_AUTH_SOCK可用于bash,但似乎ssh-agent没有获得相同的env.我错过了什么?

我使用whilp/ssh-agent解决了它,但您应该注意,这不是直接使用SSH_AUTH_SOCK,而是需要一个额外的长时间运行容器.为了便于使用,我将这种方法整合到docker-rails中.

>启动一个长时间运行的容器
docker run -d –name = ssh-agent whilp / ssh-agent:latest
>添加密钥
docker run –rm –volumes-from = ssh-agent -v~ / .ssh:/ ssh -it whilp / ssh-agent:latest ssh-add / ssh / id_rsa
>列出你的钥匙
docker run –rm –volumes-from = ssh-agent -v~ / .ssh:/ ssh -it whilp / ssh-agent:latest ssh-add -L
>将bash放入容器中并使用ssh -T git@bitbucket.org检查密钥

我的yaml看起来像:

web:
    build: .
    working_dir: /project
    ports:
      - "3000"

    environment:
      # make ssh keys available via ssh forwarding (see volume entry)
      - SSH_AUTH_SOCK=/ssh-agent/socket

    volumes_from:
      # Use configured whilp/ssh-agent long running container for keys
      - ssh-agent

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读