【问题标题】:How do i make this non-interactive?我如何使这个非交互式?
【发布时间】:2015-01-27 06:04:45
【问题描述】:

我正在尝试安装伪分布式 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

有什么建议吗?

【问题讨论】:

标签: unix hadoop ssh ubuntu-12.04 docker


【解决方案1】:

这篇文章有几个考虑因素。

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 或任何其他替代方法。

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 2010-11-26
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多