我正在尝试安装伪分布式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)您正在执行的命令到底是什么,因此会引发此错误?因为它使我想起是尝试访问ssh服务器的ssh客户端。如果是这样,您可以将此参数添加到ssh客户端以避免该错误...,但是它具有安全注意事项。
echo 'Host * StrictHostKeyChecking no' >> ~/.ssh/config
2)您可以使用已在SSH服务器上配置http://phusion.github.io/baseimage-docker/的docker基本镜像
3)对于尝试连接到服务器的ssh客户端,您可以在通过ssh连接之前自动填充known_host
ssh-keyscan -t rsa,dsa localhost >> $HOME/.ssh/known_hosts
4)如果您使用的是Docker容器,则无需通过SSH到这些容器。如果SSH需要管理容器,建议使用nsenter或任何其他替代方法。
关于unix - 我该如何使其不互动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28059778/