1. ホーム
  2. ssh-keys

[解決済み】Dockerコンテナ内でSSHキーを使用する場合

2022-04-14 20:49:55

質問

Git を使ってさまざまな楽しいことを実行するアプリ(git clone や git push を実行するような)があるのですが、これをドッカー化しようとしています。

しかし、コンテナの「ユーザー」が使用するSSHキーをコンテナに追加できるようにする必要があるという問題にぶつかっています。

にコピーしてみました。 /root/.ssh/ を変更する。 $HOME git ssh のラッパーを作成しましたが、まだうまくいきません。

以下、参考までにDockerfileを掲載します。

#DOCKER-VERSION 0.3.4                                                           

from  ubuntu:12.04                                                              

RUN  apt-get update                                                             
RUN  apt-get install python-software-properties python g++ make git-core openssh-server -y
RUN  add-apt-repository ppa:chris-lea/node.js                                   
RUN  echo "deb http://archive.ubuntu.com/ubuntu precise universe" >> /etc/apt/sources.list
RUN  apt-get update                                                             
RUN  apt-get install nodejs -y                                                  

ADD . /src                                                                       
ADD ../../home/ubuntu/.ssh/id_rsa /root/.ssh/id_rsa                             
RUN   cd /src; npm install                                                      

EXPOSE  808:808                                                                 

CMD   [ "node", "/src/app.js"]

app.js のようにgitコマンドを実行します。 git pull

解決方法は?

Ubuntuを使用している場合、ssh_configが正しくないことが判明しました。そのため

RUN  echo "    IdentityFile ~/.ssh/id_rsa" >> /etc/ssh/ssh_config

を Dockerfile に追加して、ssh 鍵を認識させるようにします。