🍣

macOS の Docker で ssh-agent を使用する

2021/04/08に公開

前提

  • コンテナ上から ssh する必要があったので調査。
  • Docker のイメージはとりあえず kroniak/ssh-client を使用する。
  • 動作確認なので、~/.ssh を何も考えずマウントしちゃう。

やり方

docker-compose.yml
version: '3'
services:
  ssh:
    image: kroniak/ssh-client
    volumes:
      - ${HOME}/.ssh:/root/.ssh:ro
      - type: bind
        source: /run/host-services/ssh-auth.sock
        target: /run/host-services/ssh-auth.sock
    environment:
      - SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock
% docker-compose run --rm ssh bash
Creating docker-ssh_ssh_run ... done
bash-5.0# ssh oppara.tv
Last login: Thu Apr  8 00:00:00 2021 from example.net
[oppara@web ~]$ whoami
oppara

環境

% sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H524

% docker --version
Docker version 20.10.5, build 55c4c88

参考

Discussion