Докер убунту 18.04 ssh-keyscan - PullRequest
2 голосов
/ 12 марта 2019

Надеясь, что кто-то, возможно, уже решил это.

Я хочу обновить образы докера с Ubuntu 16.04 до Ubuntu 18.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**

С Ubuntu 16.04 это работает нормально, но в Ubuntu 18.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

1 Ответ

0 голосов
/ 10 июня 2019

Вы должны начать sshd в том же слое, что и ssh-keyscan, он не запускается по умолчанию в новом слое, поэтому просто объедините команды в одном RUN:

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