如何使其非交互式?

wswtfjt7  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(428)

我正在尝试安装伪分布式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服务时,它会询问yes/no,如下所示。我想让它永远是的。

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

有什么建议吗?

taor4pac

taor4pac1#

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

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

2) 您可以使用已经配置了ssh服务器的docker基本映像http://phusion.github.io/baseimage-docker/
3) 对于尝试连接到服务器的ssh客户机,可以在通过ssh连接之前自动填充已知的\u主机

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

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

相关问题