« ^ »

DockerコンテナにSSHを経由してTrampする

所要時間: 約 1分

Dockerコンテナにssh経由でTrampしたくなった。実はsshを経由しなくてもコンテナにはTrampできるのだけれど、今回はsshdの挙動を確認する事が目的だったため、sshdを含むDockerイメージをビルドする事にした。

# image: frosted
FROM debian:bullseye-20230202-slim
LABEL maintainer "TakesxiSximada"
RUN apt-get update && \
    apt-get install -y openssh-server

# rootを使うべきではない
RUN mkdir -p /root/.ssh
RUN mkdir -p /run/sshd
COPY authorized_keys /root/.ssh/authorized_keys
RUN chmod 600 -R /root/.ssh

COPY entrypoint.sh /
ENTRYPOINT ["bash"]
CMD ["/entrypoint.sh"]
# CMD ["/usr/sbin/sshd", "-d", "-D"]  # sshdの挙動を確認する場合はこっちを使う

Dockerイメージをビルドする。

docker build -t frosted .

コンテナを起動する。ホスト側は9999で待ち受ける事にした。

docker run -p 9999:22 frosted

/ssh:root@localhost#22:/ でTrampできる。ポート番号の指定方法が特殊なので注意する。この差にハマった。