**
vmware centos 部署 hadoop集群,启动hadoop节点,报错Bad owner or permissions on /root/.ssh/config
**
原因: SSH关于公钥认证Permission denied的问题 … 不能直接免密码登录,原因是ssh对目录的权限有要求,代码中要设置下新生成的config文件权限才行
resolution:找到解决方案,在Dockerfile镜像生成时修改这个config的权限为600,即在Dockerfile中增加一行
RUN chmod 600 ~/.ssh/config
在这里我贴出我的dockerfile代码,我已经修改,有问题请留言:
#将配置移动到正确的位置
RUN mv /tmp/ssh_config ~/.ssh/config && chmod 600 ~/.ssh/config && \ ##权限为600
mv /tmp/profile /etc/profile && \
mv /tmp/masters $SPARK_HOME/conf/masters && \
cp /tmp/slaves $SPARK_HOME/conf/ && \
mv /tmp/spark-defaults.conf $SPARK_HOME/conf/spark-defaults.conf && \
mv /tmp/spark-env.sh $SPARK_HOME/conf/spark-env.sh && \
cp /tmp/hive-site.xml $SPARK_HOME/conf/hive-site.xml && \
mv /tmp/hive-site.xml $HIVE_HOME/conf/hive-site.xml && \
mv /tmp/hadoop-env.sh $HADOOP_HOME/etc/hadoop/hadoop-env.sh && \
mv /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml && \
mv /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && \
mv /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && \
mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
mv /tmp/master $HADOOP_HOME/etc/hadoop/master && \
mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves && \
mv /tmp/start-hadoop.sh ~/start-hadoop.sh && \
mkdir -p /usr/local/hadoop2.7/dfs/data && \
mkdir -p /usr/local/hadoop2.7/dfs/name && \
mv /tmp/init_mysql.sh ~/init_mysql.sh && chmod 600 ~/init_mysql.sh && \
mv /tmp/init_hive.sh ~/init_hive.sh && chmod 600 ~/init_hive.sh && \
mv /tmp/restart-hadoop.sh ~/restart-hadoop.sh && chmod 600 ~/restart-hadoop.sh
RUN echo $JAVA_HOME
#设置工作目录
WORKDIR /root
#启动sshd服务
RUN /etc/init.d/ssh start
RUN chmod 600 ~/.ssh/config
#修改start-hadoop.sh权限为600
RUN chmod 600 start-hadoop.sh
#修改root密码
RUN echo "root:111111" | chpasswd
CMD ["/bin/bash"]