1

我正在使用带有 phusion/baseimage 的 Vagrant 1.6.3 作为 docker 提供程序来使用 Docker。但我一直遇到这个错误:

以下 SSH 命令以非零退出状态响应。Vagrant 假设这意味着命令失败!

ssh -i /tmp/key_e8ffa02d35af2bec7aab60fe7e9df4db_0c30703c7b7126cdf4832a41b85627e5 -o 压缩=yes -o ConnectTimeout=5 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p22 root@172.17.0.2's

Stdout from the command:

boot2docker: 0.8.0
VAGRANT FENCE: 1402443935 41755
Reading package lists...
Building dependency tree...
Reading state information...


Stderr from the command:

Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.
stdin: is not a tty
VAGRANT FENCE: 1402443935 88439
modprobe: ERROR: ../libkmod/libkmod.c:556 kmod_search_moddep() could not open moddep file '/lib/modules/3.13.3-tinycore64/modules.dep.bin'
E: Unable to locate package linux-image-extra-3.13.3-tinycore64
E: Couldn't find any package by regex 'linux-image-extra-3.13.3-tinycore64'

谁能帮我吗?谢谢。

4

1 回答 1

2

问题似乎是,您是第一次对该服务器执行 ssh,而 ssh 要求您确认服务器的密钥。但是由于这是从脚本运行的,因此用户不会回答它并且 ssh 返回错误代码。

选项 1。我没有使用 vagrant,所以我不确定你是否可以交互地 ssh 到这个主机来添加密钥。

选项 2.手动添加密钥。通常known_hosts文件是散列的,所以使用它不是很容易,可能有点困难。您必须使用ssh-keyscanssh-keygen找到正确的键。这是一个小教程,你可以谷歌了解更多。

选项 3.使用类似的东西

yes "yes" | ssh ...

自动接受提供的密钥

选项 4.不需要密钥,像这样

ssh -oStrictHostKeyChecking=no ...

PS我没有测试过这些,所以有些可能不起作用,对不起。

PPS选项 3 和 4 存在安全问题。选项 1 和 2 更好,但如果您不验证密钥,仍然可能会带来安全问题。

于 2014-06-13T09:19:42.160 回答