在Dockerfile中找不到ssh-keys

Kev*_*rrg 13 docker

我有一个简单的Dockerfile,如下所示:

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get -y upgrade

RUN mkdir -p /root/.ssh
RUN touch /root/.ssh/known_hosts

RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)

运行结果:

docker build -no-cache -t testimage .
Run Code Online (Sandbox Code Playgroud)

是:

Step 5 : RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
 ---> Running in e11ef5962a11
/bin/sh: 1: ssh-keyscan: not found
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 31

您需要先安装ssh.

RUN  apt-get -yq update && \
     apt-get -yqq install ssh
Run Code Online (Sandbox Code Playgroud)

然后,各种ssh命令(包括ssh-keyscan)将可用.

这就是我在我的sshd图像Dockerfile中所做的.
我用它来添加localhost到我的.ssh/known_hosts,以便在sshd服务器上进行本地测试.

正如评论下面通过pjotr海豚:

如果你只是经过ssh-keyscan,openssh-client脚印比ssh包小.

实际上,正如Oleg Neumyvakin 评论RedHat/CentOS openssh-clients

  • 如果您只是在ssh-keyscan之后,openssh-client的占用空间小于ssh包. (3认同)