- 最后要达到的效果:
- 一台机器可以免密登录其他两台机器。
- 这里是要达到192.168.182.129免密登录192.168.182.130和192.168.182.131两台机器。
1、安装ssh(rpm或者yum或者还有别的都可以,不累述)
2、配置/etc/hosts文件(本地DNS解析文件),方便使用“简短的字符串”访问“IP地址”
例如
192.168.182.129 linux129
192.168.182.130 linux130
192.168.182.131 linux131
使用linux129 代替 192.168.182.129
使用linux130 代替 192.168.182.130
使用linux131 代替 192.168.182.131
3、让linux129的hadoop用户免密登录linux130和linux131机器上的hadoop用户
在linux129机器hadoop用户执行
$ssh-kengen -t rsa -P "" #在/home/hadoop/.ssh/目录下,生成id_rsa和id_rsa.pub。
把linux129机器上的id_rsa.pub(129的公钥)文件传给linux130和linux131的hadoop用户/home/hadoop/.ssh/目录下的authorized_keys文件中。
注意:.ssh目录的权限必须是700
authorized_keys文件的权限必须是600
否则免密登录不好使。
4、接下来就可以免密登录了。
在Linux129上使用如下命令:
ssh hadoop@linux130 #或者 ssh hadoop@192.168.182.130 登录192.168.182.130
ssh hadoop@linux131 #或者 ssh hadoop@192.168.182.131 登录192.168.182.131
第一次有可能会提示:
The authenticity of host 'linux130 (192.168.182.130)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
意思是:192.168.182.130的可信度不能确定
敲入一次yes即可。
以后linux129即可免密登录linux130 和 linux131
- CentOS Linux release 7.7.1908 (Core) 亲测可用。
另:
如果需要使用ssh免密执行远程服务器上的shell命令,且执行的命令需要用到远程服务器上的环境变量,则可以在远程服务器的~/.bashrc或者/etc/bashrc文件中配置需要用到的环境变量。
例如:
linux129需要ssh免密在linux130和linux131上执行的shell命令(请注意需要时shell,直接执行命令取不到环境变量,原因待查),则在linux130和linux131的/etc/bashrc文件中添加环境变量。
如图: