【发布时间】:2020-12-18 06:59:01
【问题描述】:
我想设置一个非常简约的 alpine linux docker 容器,具有以下功能:
- 它运行一个 ssh 服务器
- 它通过我选择的 SSH 公钥进行复制,然后我可以对其进行身份验证
我研究了各种选项,最后决定编写自己的小型 Dockerfile。 但是,我遇到了一些问题。
Dockerfile
FROM alpine:latest
RUN apk update
RUN apk upgrade
RUN apk add openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh
ADD authorized_keys /root/.ssh/authorized_keys
ADD entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
EXPOSE 22
CMD ["/entrypoint.sh"]
entrypoint.sh
#!/bin/sh
/usr/sbin/sshd -D
授权密钥
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP8cIHIPgV9QoAaSsYNGHktiP/QnWfKPOeyzjujUXgQMQLBw3jJ1EBe04Lk3FXTMxwrKk3Dxq0VhJ+Od6UwzPDg=
启动容器会报错:sshd: no hostkeys available -- exiting。
如何修复我的 Dockerfile,以确保 ssh 服务器正常运行并且授权密钥文件在那里。我错过了什么?
【问题讨论】:
-
您可以尝试使用调试标志启动 sshd:
/usr/sbin/sshd -D -ddd看看是否可以提供任何有用的信息。
标签: docker ssh containers alpine sshd