原文地址:https://itweknow.cn/detail?id=66 ,欢迎大家访问。
在我们的集群环境搭建过程中可能会很需要SSH免密登录,互相之间传文件只需要一个SCP命令,连密码都不用输,很方便。那么这篇文章我们就来了解一下怎么配置免密登录。
手动配置
我这里所谓的手动配置是相对于脚本批量设置而言的。我们准备了两台Ubuntu虚拟机A和B。
- A中生成公私钥对,执行下面的命令,然后一路回车即可。
ssh-keygen
- 将A的公钥拷贝到B上,执行下面的命令即可,中间可能会按照提示输入yes和B的密码
# B为目标主机的主机名或者IP,如果使用主机名的话需要在HOSTS文件中配置映射关系。
ssh-copy-id B
- 我们就可以在B上免密登录A了
ssh root@A
- 在B上重复上述操作,这样AB之间就可以互相免密登录了。
脚本配置
按照上述手动配置的原理中,我们可以看出配置一个免密登录主要就是两个步骤:
- 生成公私钥对。
- 将公钥添加到其他机器上
程序员都是爱偷懒的人,我将这两个步骤写成了脚本,只需要执行一下脚本就可以轻轻松松配置集群机器之间的免密登录了。脚本下载。
附上脚本的使用说明:
本脚本用于批量设置免密登录使用。
- 使用前请分别修改两个脚本中的机器名和密码
- 将两个脚本文件复制到集群中的一台机器上
- 需要保证两个脚本文件处于同一级目录下
- 在集群中某一台机器上执行bach_ssh_non_pwd_login.sh脚本即可
注:在脚本的执行过程中可能会安装expect如果报找不到包的错误的话,可以参照我之前的文章《Ubuntu使用阿里云软件仓库(内有批量更新软件仓库脚本)》修改一下软件仓库即可。