SSH建立互信
1.主机名称介绍
环境中的机器越来越多,通过IP和记忆来区分机器成本太高,需要一个属性来区别与其他计算机。与人的命名相同,计算机也有一个叫做hostname的主机名的属性。
**查看机器的hostname:**直接输入hostname命令即可
临时修改机器的hostname,重启后失效hostname 新机器名
永久修改机器的hostname,机器重启后不失效:修改/etc/sysconfig/network中的hostname属性为新的主机名称,最后reboot重启机器生效
2./etc/hosts文件介绍
DNS:Domain Name System,域名系统,解决域名到IP的对应关系查询问题。
/etc/hosts:即本机上的DNS,负责主机名称到IP的对应关系查询服务。
查看默认配置,数据格式为:IP地址 域名地址 主机名称
配置本机主机名称,使本机名称可以对外直接使用
3.实际操作实例
目标:两台主机,主机名称分别为master和slave,通过master主机可以ssh登陆slave主机时无需输入密码直接登陆。其中主机master的IP:192.168.1.10,主机slave的IP:192.168.1.11。
操作过程和步骤(默认使用root用户):
- 解决通过主机名互联互通的问题,分别设置两台主机的hostname名称。1.10主机为master,1.11主机为slave。修改/etc/sysconfig/network中的hostname属性。
设置两台主机中的hosts,均在/etc/hosts添加映射关系。其中192.168.1.10对应master,192.168.1.11对应slave。
在主机master上分别执行ping master和ping slave,确保能ping通,即确定前边的配置是正确的。
基于主机名通信,完成密钥生成与传递
在主机master上生成公钥和私钥:执行ssh-keygen -t rsa,即采用rsa加密,然后一路回车,就会按照默认选项生成的密钥保存在/.ssh/id_rsa文件中,生成的公钥保存在/.ssh/id_rsa.pub中。将主机master的公钥传输到主机slave中:使用scp ~/.ssh/id_rsa.pub root@slave:~/。
在主机slave中将公钥追加到授权列表authorized_keys当中。cat ~/id_rsa.pub >> ~/.ssh/authorized_keys。由于ssh对密钥的管理要求,改变此文件的权限为600,chmod 600 authorized_keys。除此之外,还需要关闭selinux的功能,此为linux内核安全的管理组件,由于它比较难用,一般都不开启,setenforce 0即可关闭。
登陆验证密钥配置的准确性,由主机master端直接登陆slave端,查看是否可以无密码登陆。ssh root@slave。