docker containerの中でAgent転送した鍵を使いたいことがあります。
次のような場合です。
bastionにagent forwardで鍵を転送して、その鍵をdockerの中に持ち込みたい。
mac -> bastion |
AgentForwardしていると環境変数$SSH_AUTH_SOCK
が設定され、そこにsocketファイルのPATHが入っています。これをdockerの中に持ち込めれば良いので、次のようにします。
docker run -it --rm \ |
もしbastionに存在する鍵や、SSHの設定も一緒にdocker containerの中で使いたい場合は、.ssh
もmountします。
-v ${HOME}/.ssh:/root/.ssh -v $SSH_AUTH_SOCK:/ssh-agent -e SSH_AUTH_SOCK=/ssh-agent |
なおmountする時に、mount元が存在しない場合はrootでディレクトリが作られてしまうので注意が必要です。-v /home/user/.m2:/root/.m2
とした場合、/home/user/.m2
というディレクトリが存在しないとroot
ユーザーの.m2
ディレクトリが作成されてしまいます。