当前位置: 首页 > Linux

ssh配置免密码登陆手动版和脚本版

时间:2023-04-06 22:33:40 Linux

在实际开发过程中,如果集群数量过多,集群搭建和传输需要频繁输入密码会很麻烦,所以我们一般都会为集群配置免密码登录。下面以一台机器为例,给大家分享一下手动配置无密码的方法。免密登录和脚本一种配置免密登录的方法环境准备好添加集群ip映射集群机器必须配置vim/etc/hosts手动配置免密登录生成ssh免登录密钥执行cd~/.sshoneachnode#进入我的家目录,如果是新创建的服务器或者虚拟机,可能会报错**[root@node2~]#cd~/.ssh-bash:cd:/root/.ssh:Nosuchfileordirectory**解决办法见另一篇文章(https://segmentfault.com/a/1190000019919016?share_user=1030000019541827)然后执行密钥生成命令ssh-keygen-trsa(四个回车)).执行该命令后,会生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件,将公钥复制到免登录机器上。执行ssh-copy-id-i~/.ssh/id_rsa分别在node1、node2、node3上.pubnode1在node1.pub上执行ssh-copy-id-i~/.ssh/id_rsanode1ssh-copy-id-i~/.ssh/id_rsa.pubnode2ssh-copy-id-i~/.ssh/id_rsa.pubnode3这样每个节点都有其他节点的秘钥(过程同上图,不再截图)验证命令sshnode2是否执行node1直接登录:需要互相验证下面,所以我们不会一一验证所有情况脚本配置免密码登录sshFreeLogin.sh脚本代码#!/bin/bashfunctionsshFreeLogin(){#1。检测expect服务是否存在,不存在则使用yum安装expectexpectIsExists=`rpm-qa|grepexpect`if[-z$expectIsExists]thenyum-yinstallexpectfi#2。如果密钥对不存在,则创建一个密钥[!-f/root/.ssh/id_rsa.pub]&&ssh-keygen-trsa-P""-f/root/.ssh/id_rsawhilereadline;do#提取文件中的iphostname=`echo$line|cut-d""-f2`#提取文件用户名user_name=`echo$line|cut-d""-f3`#提取文件中的密码pass_word=`echo$line|cut-d""-f4`expect<