我正在尝试使用一个小型虚拟集群来学习 Hadoop。为此,我使用了 LXD。我在每个虚拟机上都安装了 ssh 服务器,现在需要从一个虚拟机连接到另一个虚拟机。使用我从中获取的 IPlxc list
无法连接(出现“连接被拒绝”错误)。
以下是(应该是)一组可重现的命令:
创建机器
for n in 1 2 3 4 5;do sudo lxc launch images:centos/7/amd64 hadoop$n done
安装 OpenSSH
for n in 1 2 3 4 5;do sudo lxc exec hadoop$n -- apt-get update sudo lxc exec hadoop$n -- apt-get upgrade -y sudo lxc exec hadoop$n -- yum -y install openssh openssh-server openssh-clients openssl-libs; done
重启计算机
for n in 1 2 3 4 5;do sudo lxc stop hadoop$n sudo lxc start hadoop$n done
创建无密码 ssh 连接
在托管安装程序的机器上(hadoop1)
(MapR 5.1 要求从将安装 Hadoop 的节点之一运行安装脚本,这就是为什么我从其中一个虚拟机而不是主机笔记本电脑运行此脚本的原因)
ssh-keygen
主机操作系统
sudo lxc file pull hadoop1/root/.ssh/id_rsa.pub .
for n in 2 3 4 5;do sudo lxc file push ./id_rsa.pub hadoop$n/root/.ssh/authorized_keys -p sudo lxc exec hadoop$n -- chmod 600 /root/.ssh/authorized_keys sudo lxc exec hadoop$n -- sudo chown root: /root/.ssh/authorized_keys; done
ssh root@<ip from lxc list>
...Connection refused
答案1
你不能这样复制 ssh 密钥
有一个 ssh 命令可以正确复制密钥:
ssh-copy-id 用户@其他主机
一个好的写作/指南是:
布赖恩