Hadoop集群配置免密SSH登录方法

免密登录原理

生成密钥对:用户使用ssh-keygen工具在本地计算机上生成一对公钥和私钥。私钥通常存储在用户的~/.ssh目录下(在本地计算机)需妥善保管,而公钥可以通过ssh-copy-id或手动将其复制到远程主机上,是公开使用的,在将来的登录过程中,公钥用于对会话进行加密,并验证是否与存储在远程主机上的公钥匹配。

id_rsa是私钥,而id_rsa.pub是公钥

发送公钥:用户将公钥复制到需要访问的远程主机上。在将来的登录过程中,用户将使用私钥对登录请求进行加密,并发送给远程主机

验证公钥:远程主机在收到用户的登录请求后,会使用预先存储的公钥对请求进行解密,并验证其是否与已存储的公钥匹配。如果匹配成功,远程主机会允许用户登录。

加密会话:如果公钥验证成功,远程主机将使用用户的公钥对会话进行加密,并将加密后的数据发送给用户。用户使用私钥对加密数据进行解密,并继续执行登录过程。

每台主机authorized_keys(可以自己创建一个)文件里面包含的主机(ssh密钥),该主机都能无密码登录,所以只要每台主机的authorized_keys文件里面都放入其他主机(需要无密码登录的主机)的ssh密钥就行了。比如想在slave2 上免密登录slave3,只需要将slave2的公钥添加到 slave3的authorized_keys就可以了

实现方法

hosts 文件映射

 每个节点生成 ssh 密钥

这里先假设在matser节点上

ssh-keygen -t rsa

 执行上述命令后会看到有生成文件夹.ssh,这个文件夹下面有id_rsa和id_rsa.pub两个文件,我们可以创建一个文件夹authorized_keys,用于存放公钥

cp id_rsa.pub authorized_keys

将authorized_keys文件拷到下一个节点,并将该节点的ssh密钥id_rsa.pub加入该文件中(这里将authorized_keys拷贝到slave1节点上)

scp -r authorized_keys  root@slave1:/root/.ssh/

,然后将slave1的公钥也追加到authorized_keys(这里需要登录slave1 节点,并且以及执行生成密钥命令,也就是上述的ssh-keygen -t rsa

cat id_rsa.pub >> authorized_keys 

到这一步slave1的authorized_keys中有 master的公钥文件,就可以在master上免密登录slave1了。按上述规律实现其他节点之间的免密登录即可。

发送公钥命令

比如,我想在slave2上免密登录slave3,只需将slave2的公钥添加到slave3的authorized_keys文件中

ssh-copy-id -i ~/.ssh/id_rsa.pub [root]@[slave3]

若要访问  slave1节点,我们就把slave1节点对应的公钥指纹放到当前节点的known_hosts文件中

ssh-keyscan slave1 >>~/.ssh/known_hosts

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值