我如何使这种非互动?

时间:2015-01-21 04:45:45

标签: unix hadoop ssh ubuntu-12.04 docker

我正在尝试安装伪分布式hadoop安装。在那,我正在安装ssh用于无密码身份验证。我在docker文件中运行它。

   RUN /usr/bin/sudo apt-get install -y openssh-server openssh-client
   WORKDIR /home/hadoop_admin
   RUN mkdir /home/hadoop_admin/.ssh
   RUN chmod 700 /home/hadoop_admin/.ssh
   RUN ssh-keygen -t rsa -P "" -f ~/.ssh/id_dsa
   RUN cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

当我开始使用ssh服务时,它会询问是/否,如下所示。我想永远做到这一点。

  The authenticity of host 'localhost (::1)' can't be established.
  ECDSA key fingerprint is [long hexa key value]
  Are you sure you want to continue connecting (yes/no)? yes

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这篇文章有几个注意事项。

1)您正在执行的命令是什么,所以会引发此错误?因为它让我想起了一个ssh客户端试图访问ssh服务器。如果是这样,您可以将此参数添加到ssh客户端以避免错误......但它有安全性考虑。

echo 'Host * StrictHostKeyChecking no' >> ~/.ssh/config

2)您可以使用docker基础映像,其中包含已配置SSH服务器的许多其他内容http://phusion.github.io/baseimage-docker/

3)对于尝试连接服务器的ssh客户端,可以在通过ssh连接之前自动填充known_host

ssh-keyscan -t rsa,dsa localhost >> $HOME/.ssh/known_hosts

4)如果您使用的是docker容器,则不需要SSH到容器。如果SSH需要管理容器,建议使用nsenter或任何其他替代方法。