linux服务器间配置ssh免密连接
先说一下,我用的centos7,root用户。ssh的原理就不说了,网上介绍的文章很多,直接开始说操作步骤吧:
1.首先确认有没有安装ssh,输入 rpm -qa |grep ssh查看
这样就表示安装了ssh,没有的话就先安装ssh
2.关闭防火墙
首先查看防火墙的状态,运行 systemctl status firewalld.service
由于我这里已经关闭了防火墙,所以线框中的状态Active位inactive状态,开启状态下为running。永久关闭防火墙、禁止开机自启动的指令为 systemctl disable firewalld.service(centos7下是该指令,其它系统可能有所区别),关闭之后可以再重新查看一下防火墙状态,看是否关闭成功。
3.配置静态IP
一般集群中每个服务器都会分配固定的IP地址,这样连接比较方便。配置静态IP时,首先查看服务器的网卡类型,执行命令:ls /etc/sysconfig/network-scripts,出现如下
可以看到网卡类型为ens33(这个每个人可能不同),然后编辑ifcfg_ens33文件,执行vim /etc/sysconfig/network-scripts/ifcfg-ens33 ,在配置文件种需要作如下修改(红色方框内位修改后的结果),
由于我测试时用的是局域网,因为DNS服务器地址随便用了一个。
键盘esc+shift+enter,然后输入wq保存文件并退出,然后重启网络 service network restart,这样静态IP地址就配置完成了。
4.修改/etc/hosts文件
为了每次使用shh指令连接别的主机时不用输入ip地址,可以在host文件中把主机名和ip地址进行映射,这样比较方便。打开host文件 vim /etc/hosts,在文件末尾添加ip与主机名的映射
我这里创建了一个master,两个slave
5.生成公匙、私匙,并移动公匙
以我自己的机器为例,假设我需要配置master连接slave1。首先在master机器上生成公匙和私匙,输入ssh-keygen -t rsa,一直回车即可,结果如下
该指令在~/.ssh目录下生成了公钥(id_rsa.pub)和私钥(id_rsa),可以进入该目录下查看 cd ~/.ssh,然后输入指令ls。登陆slave1主机,同样的先在slave1上生成公匙和密匙,执行ssh-keygen -t rsa,一路回车,进入/.ssh目录下,创建authorized_keys文件,然后先把本机slave1的公匙写入到该文件中,cat ~/.ssh/id_rsa_pub authorized_keys,接下来需要把masterd的公匙复制到slave1上,先把master的公匙随便复制到一个地方,例如/usr下,执行如下指令:scp root@192.168.0.158:~/.ssh/id_rsa.pub /usr ,此过程需要输入master上root用户的密码,然后把master的公匙写入到authorized_keys的末尾
cat /usr/id_rsa_pub ~/.ssh/authorized_keys,保存并退出文件。
6.修改文件权限
chomd 700 ~/.ssh
chomd 600 ~/.ssh/authorized_keys
到此,shh的免密登陆配置完成,可以在master上通过ssh slave1连接slave1主机了。