ssh免密码登录配置
假设两台主机为master和slave,两台主机中要做ssh链接的两个用户名最好相同,否则在之后ssh链接时会比较蛋疼。下面是修改主机名的操作步骤
首先注销掉需要修改用户名的用户(!!必须注销掉),然后最好ctrl+alt+f1进入纯命令行操作,登录root用户,按照顺序做如下操作
passwd 原名字
设置新的密码
chfn -f 新名字 原名字
usermod -l 新名字 -d /home/新名字 -m 原名字
groupmod -n 新名字 原名字
然后重启就ok了。
下面进入正题:
1 首先分别把两台主机安装上openssh-server,执行如下命令即可:
sudo apt-get install openssh-server
2 在两台主机分别创建sshkey,步骤如下
ssh-keygen -t rsa
ps:ssh和-keygen之间是没有空格的,没有,没有,重要的事要说三遍,初学者很容易看错了。
一直回车就行了,如下图
进入/home/hadoop下就会产生一个新目录,叫.ssh,进入该目录ls就会发现有两个文件,id_rsa和id_rsa.pub,前者为私钥,后者为公钥
两台主机分别把自己的公钥发给对方,命令如下:
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.8.94
其中,hadoop为对方的要执行ssh链接的用户名,192.168.8.94是对方主机的ip地址,我在hosts中做了配置,也可以用配置后的别名,如下图:
中间输入的密码是对方主机用户的密码。
如果分别在两台主机执行了以上操作,就会发现,两台主机的.ssh/目录下多出了一个文件authorized_keys。
然后就可以通过如下ssh命令链接到对方了
ssh hadoop@192.168.8.94
然后关键来了,我最先说的最好设置成相同的用户名,如果两个主机用户名相同,那么可以直接通过 ssh 对方ip 访问。如下:
如果想退回就执行exit命令。
遇见的错误:执行ssh链接的命令后,显示如下一行提示,并且需要输入对方密码才能ssh访问
agent admitted failure to sign using the key
解决方法:在本机执行如下命令就可以解决了
ssh-add