资讯专栏INFORMATION COLUMN

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

tyheist / 2263人阅读

摘要:在实际开发过程中,如果集群数量过多,集群建传输要频繁输入密码就会很麻烦,所以我们一般都会给集群配置免密登录,下面以一台机器为例,给大家分享一下手动配置免密登录和脚本一件配置免密登录的方法环境准备添加集群映射集群的机器都要配置手动配置免密登录

在实际开发过程中,如果集群数量过多,集群建传输要频繁输入密码就会很麻烦,所以我们一般都会给集群配置免密登录,下面以一台机器为例,给大家分享一下手动配置免密登录和脚本一件配置免密登录的方法

环境准备 添加集群ip映射
集群的机器都要配置
vim /etc/hosts
 

手动配置免密登录 生成ssh免登陆密钥
在各个节点分别执行
cd ~/.ssh  #进入到我的home目录
如果是新创建的服务器或者是虚拟机可能会报错
**[root@node2 ~]# cd ~/.ssh
-bash: cd: /root/.ssh: No such file or directory**
解决方法见另一篇文章( https://segmentfault.com/a/1190000019919016?share_user=1030000019541827)
然后执行生成密钥命令
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免登陆的机器上
分别在node1,node2, node3执行
ssh-copy-id -i ~/.ssh/id_rsa.pub node1 

在node1上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
ssh-copy-id -i ~/.ssh/id_rsa.pub node3
从而让各个节点互相拥有其他节点的秘钥(流程与上图相同,就不再截图)
验证
在node1执行命令ssh node2 是否直接登录:
需互相验证
node1->node1
node1->node2
node2->node1
node2->node2
node1->node3
node3->node3
node3->node1
node2->node3
node3->node2
验证通过例子如下图所示,就不一一验证所有的情况了

脚本配置免密登录
sshFreeLogin.sh脚本代码
#! /bin/bash
function sshFreeLogin()
{
 #1.检测expect服务是否存在,不存在则使用yum安装expect
 expectIsExists=`rpm -qa | grep expect` 
 if [ -z $expectIsExists ]
 then
      yum -y install expect
 fi
 #2.密钥对不存在则创建密钥
 [ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
 while read line;do
       #提取文件中的ip
       hostname=`echo $line | cut -d " " -f2`
       #提取文件中的用户名
       user_name=`echo $line | cut -d " " -f3`
       #提取文件中的密码
       pass_word=`echo $line | cut -d " " -f4`          
       expect <
host_ip.txt配置
192.168.31.35 node1 root 123456
192.168.31.36 node2 root 123456
192.168.31.37 node3 root 123456

分别对应 ip 主机名 用户名 密码
脚本配置完成后,直接执行即可,脚本可以随意增加集群机器数量,但是暂时只能执行脚本的集群可以免密登录其他所有机器

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/46288.html

相关文章

  • ssh配置免密登录手动脚本

    摘要:在实际开发过程中,如果集群数量过多,集群建传输要频繁输入密码就会很麻烦,所以我们一般都会给集群配置免密登录,下面以一台机器为例,给大家分享一下手动配置免密登录和脚本一件配置免密登录的方法环境准备添加集群映射集群的机器都要配置手动配置免密登录 在实际开发过程中,如果集群数量过多,集群建传输要频繁输入密码就会很麻烦,所以我们一般都会给集群配置免密登录,下面以一台机器为例,给大家分享一下手动...

    mumumu 评论0 收藏0
  • Linux 下使用 SSH 免密登录的不同姿势

    摘要:而密钥验证则是依赖客户端服务端之间的公私钥加解密方式,故不存在中间人攻击中间人没有任何一端的私钥,但同时整个过程需要相对较长的时间。 一、背景概述 ssh 这个命令算作是学习 Linux 时最基础的命令之一了。之前使用 ssh 时,都是通过用户名 + 密码的形式进行登录的。之前写 TransFile-Shell 小工具[[1]](https://gitee.com/lwx1996042...

    CoderBear 评论0 收藏0
  • ssh免密登录服务器和scp的使用

    摘要:原理远程主机收到用户的登录请求,把自己的公钥发给用户。也就是说,要实现免密码登入,首先要设置钥匙。把公钥放到远程服务器比如我的基本都安装了,万一没有,上。TL;DR 本地登录服务器 ssh user@remote -p port,端口是22的话ssh user@remote,退出登录exit 本地免密码登录 ssh-copy-id user@remote -p port,这在写脚本服务器控...

    Jochen 评论0 收藏0
  • 如何使用ssh-copy-id 快速的配置免密登录

    摘要:在需要免密登录其他机器的主机上生成公钥,私钥等。回车回车回车哪个用户登录就在哪个用户目录的目录下生成。将以下命令做成脚本因为环境不能下载,直接将命令的脚本了。使用做的脚本执行以下命令即可。测试配置设置别名。 1、在需要免密登录其他机器的主机上 生成公钥,私钥等。 ssh-keygen -t rsa 回车回车回车 哪个用户登录就在哪个用户目录的.ssh目录下生成。 2、将以下命令做成脚...

    ermaoL 评论0 收藏0
  • ➹ 一些常用的 Linux 远程操作命令记录

    ➣ 简介 tip 常用Linux命令内容主要包括:查看IP地址、ssh相关操作、scp相关操作、进程相关操作、端口相关操作、冻结终端、释放/获取IP地址、密匙相关操作、使用密匙进行免密登陆、不通过配置文件实现免密登陆、config配置文件拓展 IP 地址相关操作 查看 IP 地址可以使用 ip 命令或 ifconfig 命令,推荐使用 ip 命令: 1)使用 ip 命令查看 IP 地址: ip a...

    Edison 评论0 收藏0

发表评论

0条评论

tyheist

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<