其实网上网上说的很多,这里给大家总结一下,很简单的步骤,不需要想的那么复杂。这里我的例子是单项操作,如果想相互无密重复就好了
master访问自己、master->node1、master->node2 (无需密钥)
反过来node1访问node1、node2访问node2、node1->master、node2->master (需要密钥)
分成五步
便于理解,我简单说一下
第一步:安装ssh-server服务(因为默认Ubuntu是没有的)
第二步:主节点生成公钥(例如叫master)
第三部:把公钥加入授权
第四部:把公钥拷贝给从节点(例如node1或者叫slave1等等)
第五步:把公钥加入授权
(其实这里4、5是重复操作)
大概思路:(3扇门(有密码和锁的那种),3个人。人都被关在屋里,1号现在自己做出钥匙了,而且还是把通用钥匙,可以开的23的门,但是23不行,他们只能任由1号宰割(除非他们自己做出钥匙或者能够知道密码))
具体操作如下:
第一步:
sudo apt-get install openssh-server #安装服务,一路回车
sudo reboot (如果重启之后输入查看命令没反应,再输入下面2行命令)
sudo /etc/init.d/ssh restart #启动服务
sudo ufw disable #关闭防火墙
然后输入命令查看状态(中间都是由空格的)
ps -e|grep ssh
下面有sshd是正确的否则的话自行百度解决方案
在安装的时候可以查看到安装路径
第二步:
主节点产生公钥
cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回车就可以
上面结束,我们已经产生公钥
第三步:
然后将公钥加入授权文件。
cat ./id_rsa.pub >> ./authorized_keys (注意,这里的目录根据自己改变)
然后就可以无密码登录本机。
第四步:
接着将文件拷贝到从节点
scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/
(注意文件位置,根据自己的来)(前面的hadoop是 虚拟机名称,@后面是从节点名称。)
第四步:
最后给从节点授权
mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys (授权)
rm ~/id_rsa.pub # 用完就可以删掉了
总的来说,如果有两台电脑,首先生成自己的公私钥,然后将公钥放在A的文件中,然后可以测试能否无秘访问自己。然后如果想无秘访问其他电脑,就把自己的公钥放到别人的A文件中区,就可以进行无秘访问。远程拷贝是scp,本机拷贝是cp
图解ssh(想理解原理可以进来看看)
https://www.cnblogs.com/diffx/p/9553587.html
常见问题:
1、SSH密码无效(话说我输入密码了,密码也正确,为啥不让进)
解决方法:
这是由于/etc/ssh/sshd_config文件的配置出现错误,PermitRootLogin有四种状态,默认状态是不允许密码访问的,所以需要重新设置,具体请参考:
https://blog.csdn.net/kevinlou2008/article/details/78309775
设置成yes就可以了