我正在尝试安装伪分布式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
有什么建议吗?
答案 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或任何其他替代方法。