Docker ubuntu 18.04 ssh密钥扫描

Docker ubuntu 18.04 ssh密钥扫描,docker,dockerfile,ubuntu-18.04,Docker,Dockerfile,Ubuntu 18.04,希望有人已经解决了这个问题 我想将我的docker图像从Ubuntu16.04升级到Ubuntu18.04。 除了以下几点之外,一切似乎都很好: RUN apt-get install -y ssh RUN mkdir -p /home/sshkeys RUN ssh-keygen -q -t rsa -N '' -f /home/sshkeys/id_rsa RUN touch /home/sshkeys/authorized_keys RUN cat /home/sshkeys/id_rs

希望有人已经解决了这个问题

我想将我的docker图像从
Ubuntu16.04
升级到
Ubuntu18.04
。 除了以下几点之外,一切似乎都很好:

RUN apt-get install -y ssh
RUN mkdir -p /home/sshkeys
RUN ssh-keygen -q -t rsa -N '' -f /home/sshkeys/id_rsa 
RUN touch /home/sshkeys/authorized_keys
RUN cat /home/sshkeys/id_rsa.pub >> /home/sshkeys/authorized_keys
RUN ./etc/init.d/ssh start
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config     
**RUN ssh-keyscan localhost >> /home/postgres/.ssh/known_hosts**
使用
ubuntu16.04
这很好,但是在
ubuntu18.04
中,我从
Dockerfile
构建图像时遇到以下错误:

Step 36/71 : RUN ssh-keyscan localhost >> /home/postgres/.ssh/known_hosts
 ---> Running in 0f34b430fc2f
write (localhost): Connection refused
write (localhost): Connection refused
write (localhost): Connection refused
Removing intermediate container 0f34b430fc2f

您应该在与
ssh keyscan
相同的层中启动
sshd
,默认情况下,它不会在新层中启动,因此只需在相同的
RUN
中耦合命令即可:

RUN \
  ./etc/init.d/ssh start && \
  ssh-keyscan localhost >> /home/postgres/.ssh/known_hosts

可以ping localhost吗?是的,在dockerfile中进行ping将显示localhost为127.0.0.1
localhost
始终是“此容器”,即使在dockerfile中(它为每个
运行
步骤启动隐式容器)。您可能希望在构建上下文中创建此文件并将其复制到中。/etc/ssh/ssh_config中有任何特殊调整吗?在运行ssh密钥之前,我可以发出以下命令:RUN apt get install-y ssh RUN mkdir-p/home/sshkeys RUN ssh keygen-q-t rsa-N''-f/home/sshkeys/id_rsa RUN touch/home/sshkeys/authorized_keys RUNcat/home/sshkeys/id_rsa.pub>/home/sshkeys/authorized_keys RUN./etc/init.d/ssh start RUN sed-i's/permitrotlogin禁止密码/permitrotlogin yes/'/etc/ssh/sshd_config