dockerでgithubに個人情報を隠したままssh接続(Windows10)
やりたいこと
docker起動時に,docker内からgithubにssh接続をする. その際に,個人の情報が漏洩することを防ぐ.
結論
Dockerfileとdocker-compose内にそれぞれ以下を追加する
RUN mkdir /root/.ssh
volumes: - ${USERPROFILE}\\.ssh_docker:/root/.ssh command: chmod 600 /root/.ssh/*
追記(2021/02/07)
DockerFileを使用しない場合はdocker-composeに下記のように書くといい
command: - mkdir /root/.ssh - chmod 600 /root/.ssh/* volumes: - ${USERPROFILE}\\.ssh_docker:/root/.ssh
背景
docker起動時にSSH接続する場合,秘密鍵をdockerにマウントする必要がある.
windows10の場合,sshキーはC:\USERS\ユーザ名\.ssh\
に格納さている.
個人用の場合は上記フォルダをそのままマウントしても問題ないが,Dockerfielごとgithubにpushした場合,ユーザ名が流出することが考えられる.(本名の場合だといろいろまずい).
解決策
windows10の環境変数を活用する.
例えば,'c:\USERS\ユーザ名\`は%USERPROFILE%
となる.
よって,C:\USERS\ユーザ名\.ssh\
をマウントしたい場合は,${USERPROFILE}\\.ssh
とすれば良い.
ポイント
- windowsでは階層は
\
(円マーク)であるが,docker内で扱うときは\\
と二重にする. %USERPROFILE%
はdocker内では${USERPROFILE}
となる.
その他の環境変数は下記参照
その他
Dockerfile内で,sshキーをマウントするフォルダを作成する
mkdir /root/.ssh/
sshキーをマウントした後,アクセス可能権限を与える
chmod 600 /root/.ssh/*