具備ssh server的Dockerfile
在做VSCode的Remote-SSH和Remote-Container的教學時發現需要一個具備ssh server的image,中間小小的踩雷的一下,所以這篇就把建置image的結果紀錄一下。
Dockerfile內容
FROM ubuntu:20.04
RUN apt update
RUN apt install openssh-server -y
RUN echo "Port 22" >> /etc/ssh/sshd_config
RUN echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
EXPOSE 22
ENTRYPOINT service ssh restart && bash
檔案名稱用Dockerfile,D要大寫。
這裡就是用ubuntu 20.04作為基礎image,再安裝openssh-server,然後寫入設定到/etc/ssh/sshd_config中。
這裡的設定禁用密碼登入,要登入得使用public key,並且容許root登入。
而我踩雷的部份就是最後一行的設定。
用Dockerfile建立image
docker build -t sshd-ubuntu .
-t用來是給予tag名稱與版本,上面沒有用:指定版本所以版本號會是latest
用image生成container並啟動
docker run -dt -p 2222:22 --name sshd-instance sshd-ubuntu
--name指定生成的container名稱為sshd-instance
-p作將container的22對應到本機2222,如果本機上已佔用2222埠,會啟動失敗
留言