Linux集群间ssh免密登录

为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录。但是很多时候为了操作方便,我们都通过设置SSH免密码登录。那么该如何设置?是不是免密码登录就不安全了呢?

一、被访问主机的秘钥存储机制

在被SSH登录的主机中,其实都有一个存储来登录的主机的秘钥的文件,它的名字叫做authorized_keys,它的位置就在root/下面的隐藏目录.ssh中(注:如果这台主机没有被设置任何免秘钥登录,这个文件缺省是不存在的)

Linux集群间ssh免密登录

在authorized_keys文件中,存储着能够登录本地主机的各个主机的身份证信息,他们的存储格式都是以ssh-rsa开头的一组字符串。在这里,我们不用理解他的意义,但是要记住两点:

  1. 每个ssh-rsa及其之后字符串组成了一个唯一代表一个主机的秘钥;

  2. 这个秘钥是无法被仿照的;

二、SSH免密登录设置

目标机器: node1

本地机器: node2

a. 修改hosts文件,为主机名增加映射

[[email protected] ~]# vi /etc/hosts

192.168.1.11 node1

192.168.1.12 node2

b. 在本地机器用ssh-****** -t rsa 生成一个公私钥对

[[email protected] ~]# ssh-****** -t rsa

 Linux集群间ssh免密登录

此时,在/root/下会生成一个.ssh目录,在这个目录下会生成两个文件
Linux集群间ssh免密登录
id_rsa是私钥,一定要保存好。不能丢失,也绝对不能分发给其他的用户。如果私钥丢失,身份就可能会被别人冒充。

id_rsa.pub是公钥,用来对外做分发用的。其他的主机拿到公钥之后,就能够判断私钥是否准确。

c. 发送**到本机

[[email protected] ~]# ssh-copy-id localhost

 Linux集群间ssh免密登录   密码输入不显示

d. 发送公钥到其他计算机

[[email protected] ~]# ssh-copy-id node2

Linux集群间ssh免密登录  密码输入不显示

e. ssh免密就搭建好了

可以通过   ssh 主机名  进行访问