Linux SSH免密登录

news2024/12/24 10:04:18

       

目录

         简介

        创建Linux用户和用户组

        配置LINUX静态IP   

        编辑IP映射

        SSH免密登录配置

        登录测试


         简介

        SSH(Secure shell)是可以在应用程序中提供安全通信的一个协议,通过SSH可以安全地进行网络数据传输,它的主要原理是利用非对称加密体系,对所有待传输的数据进行加密,保证数据在传输时不被恶意破坏、泄露或篡改。但是大数据集群(主要指的是Hadoop集群,可用Hadoop代指)使用SSH主要不是用来进行数据传输的,而是在Hadoop集群启动或停止时,主节点需要通过SSH协议将从节点上的进程启动或停止。如果不配置SSH免密登录,对Hadoop集群的正常使用没有任何影响,只是在启动或停止Hadoop集群时,需要输入每个从节点用户名的密码。可以想象一下,当集群规模比较大时,比如达到成百上千节点规模,如果每次都要分别输入集群节点的密码,相当麻烦,这种方法肯定是不可取的,所以要对Hadoop集群进行SSH免密登录的配置,而且目前远程管理环境中最常使用的也是SSH。

        SSH免密登录的功能与用户密切相关,为哪个用户配置了SSH,哪个用户就具有SSH免密登录的功能,没有配置的用户则没有该功能,这里选择为hadoop用户配置SSH免密登录。

        创建Linux用户和用户组

        在大数据平台搭建的过程中,为了系统安全考虑,一般不直接使用超级用户root,而是需要创建一个新的用户和用户组。在Linux系统中,可以直接使用groupadd命令创建新用户组,groupadd的使用方法如下图所示。

        在控制台输入命令groupadd hadoop,就可以创建名字为hadoop的用户组。在Linux系统中,可以直接使用useradd命令创建新用户,useradd的使用方法如下图所示。

        在控制台输入命令useradd -g hadoop hadoop,就可以创建名字为hadoop的用户并指定用户组为hadoop。另外,可以在root用户下,使用passwd命令为刚刚创建的hadoop用户设置密码,密码可以自行设置,具体操作如图所示。 

[root@vm06 ~]# groupadd hadoop 
[root@vm06 ~]# useradd -g hadoop hadoop

        配置LINUX静态IP   

        在实际应用中,由于经常使用动态主机配置协议(Dynamic HostConfiguration Protocol, DHCP)服务器来分配IP地址,每次重启DHCP服务器,IP地址有可能是会变动的。而使用Linux系统来搭建大数据平台,希望IP地址是固定不变的,因为集群配置的很多地方都会涉及IP地址,所以需要将Linux系统配置为静态IP。那么如何进行配置呢?

        这里以vm06节点为例,首先在控制台输入命令vim /etc/sysconfig/network-scripts/ifcfg-ens33 打开配置文件,然后修改vm06节点的网卡信息,具体配置如图所示。

添加DNS1=8.8.8.8
将BOOTPROTO参数由dhcp改为static,表示将动态IP改为静态IP;
添加固定IP地址IPADDR为10.0.0.106;
添加子网掩码NETMASK为255.255.255.0;
网关GATEWAY设置为10.0.0.254。(可在VMware Workstation导航栏中,选择编辑→虚拟网络编辑器选项,查看自己设置的网段和网关)

修改网卡配置之后,需要在控制台输入命令systemctl restart network重启网络服务才能生效,

        编辑IP映射

        实际上不论是IP地址还是主机名都是为了标识一台主机或服务器。IP地址就是一台主机上网时IP协议分配给它的一个逻辑地址,主机名就相当于又给这台机器取了一个名字,可以为主机取各种各样的名字。如果要用名字去访问主机,系统如何通过名字去识别一台主机呢?这就需要配置hostname与IP地址之间的对应关系。在控制台输入命令vi /etc/hosts打开配置文件,在hosts文件的末尾按照对应格式添加IP地址和主机名之间的对应关系。此时IP地址为10.0.0.105,对应的hostname为vm05,注意它们之间要有空格。具体配置结果如图所示

        SSH免密登录配置

        首先在控制台,使用su命令切换到hadoop用户,具体操作下图所示。在hadoop用户的根目录下使用mkdir命令创建.ssh目录,使用命令ssh-keygen-t rsa(ssh-keygen是秘钥生成器,-t是一个参数,rsa是一种加密算法)生成秘钥对(即公钥文件id_rsa.pub和私钥文件id_rsa),

[hadoop@vm06 ~]$ mkdir -p .ssh
[hadoop@vm06 ~]$ ll -a
total 12
drwx------  3 hadoop hadoop  74 Nov 13 19:58 .
drwxr-xr-x. 4 root   root    30 Nov 13 19:53 ..
-rw-r--r--  1 hadoop hadoop  18 Nov 25  2021 .bash_logout
-rw-r--r--  1 hadoop hadoop 193 Nov 25  2021 .bash_profile
-rw-r--r--  1 hadoop hadoop 231 Nov 25  2021 .bashrc
drwxrwxr-x  2 hadoop hadoop   6 Nov 13 19:58 .ssh

        将公钥文件id_rsa.pub中的内容复制到相同目录下的authorized_keys文件中,具体操作如图所示。

[hadoop@vm06 .ssh]$ ll
total 8
-rw------- 1 hadoop hadoop 1679 Nov 13 20:00 id_rsa
-rw-r--r-- 1 hadoop hadoop  393 Nov 13 20:00 id_rsa.pub
[hadoop@vm06 .ssh]$ cp id_rsa.pub authorized_keys
[hadoop@vm06 .ssh]$ ll
total 12
-rw-r--r-- 1 hadoop hadoop  393 Nov 13 20:05 authorized_keys
-rw------- 1 hadoop hadoop 1679 Nov 13 20:00 id_rsa
-rw-r--r-- 1 hadoop hadoop  393 Nov 13 20:00 id_rsa.pub
[hadoop@vm06 .ssh]$ cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDq0fksmfO4IKYl7gp87JdgU6SEo2l/1+pd4XCsPCzV1PEm+WXP0MWm2TEnjYbD6wBeQaoA5cXCMCt/rNT19lLAL4tZhKeBUJBKln4OrwcPlwVEihBiDC2QDYeEqtlJTGWrYpBECET3Tg3tlBkLWmDf4maYNdDjKLOEbeEl2gZ+vmyNyuO3OrIoIf0Y3ZuDqZtHZl9VQPSacPcAeRJ3KUEO56bP4mT7EgyF44GS2fzRIFnvXfrqqcYPCvS9KSinMXXSXDSa13LpducKJnJK4xQw/7+Ulj1nYiQ31lF561F7RMlLwEssy9X7X46kxMJcO9Hrqn7YVeYT0MAxOCsI1mJV hadoop@vm06
[hadoop@vm06 .ssh]$ 

将每个节点的 authorized_keys 密钥内容汇总到一起, 然后分发到每个节点中去

[hadoop@vm05 .ssh]$ scp authorized_keys vm06:/home/hadoop/.ssh/
The authenticity of host 'vm06 (10.0.0.106)' can't be established.
ECDSA key fingerprint is SHA256:6x51ixbdcREkjq5gPhLOrvwDUoDUWPXUFU0CqE+3E5Y.
ECDSA key fingerprint is MD5:52:99:a2:2e:c9:a1:09:4b:28:48:33:ff:c6:c2:e2:10.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vm06,10.0.0.106' (ECDSA) to the list of known hosts.
hadoop@vm06's password: 
authorized_keys                                                                                                100% 1180     1.4MB/s   00:00    
[hadoop@vm05 .ssh]$ scp authorized_keys vm07:/home/hadoop/.ssh/
The authenticity of host 'vm07 (10.0.0.107)' can't be established.
ECDSA key fingerprint is SHA256:6x51ixbdcREkjq5gPhLOrvwDUoDUWPXUFU0CqE+3E5Y.
ECDSA key fingerprint is MD5:52:99:a2:2e:c9:a1:09:4b:28:48:33:ff:c6:c2:e2:10.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vm07,10.0.0.107' (ECDSA) to the list of known hosts.
hadoop@vm07's password: 
authorized_keys                                                                                                100% 1180     1.2MB/s   00:00    
[hadoop@vm05 .ssh]$ 

 切换到hadoop用户的根目录,然后为.ssh目录及文件赋予相应的权限,具体操作如图所示。 

[hadoop@vm06 ~]$ ll -a 
total 12
drwx------  3 hadoop hadoop  74 Nov 13 20:00 .
drwxr-xr-x. 4 root   root    30 Nov 13 19:53 ..
-rw-r--r--  1 hadoop hadoop  18 Nov 25  2021 .bash_logout
-rw-r--r--  1 hadoop hadoop 193 Nov 25  2021 .bash_profile
-rw-r--r--  1 hadoop hadoop 231 Nov 25  2021 .bashrc
drwxrwxr-x  2 hadoop hadoop  38 Nov 13 20:00 .ssh
[hadoop@vm06 ~]$ cd .ssh/
[hadoop@vm06 .ssh]$ ll
total 8
-rw------- 1 hadoop hadoop 1679 Nov 13 20:00 id_rsa
-rw-r--r-- 1 hadoop hadoop  393 Nov 13 20:00 id_rsa.pub
[hadoop@vm06 .ssh]$ cd ..
[hadoop@vm06 ~]$ chmod 700 .ssh/
[hadoop@vm06 ~]$ chmod 600 .ssh/*
[hadoop@vm06 ~]$ ll -a 
total 12
drwx------  3 hadoop hadoop  74 Nov 13 20:00 .
drwxr-xr-x. 4 root   root    30 Nov 13 19:53 ..
-rw-r--r--  1 hadoop hadoop  18 Nov 25  2021 .bash_logout
-rw-r--r--  1 hadoop hadoop 193 Nov 25  2021 .bash_profile
-rw-r--r--  1 hadoop hadoop 231 Nov 25  2021 .bashrc
drwx------  2 hadoop hadoop  61 Nov 13 20:05 .ssh
[hadoop@vm06 ~]$ cd .ssh
[hadoop@vm06 .ssh]$ ll
total 12
-rw------- 1 hadoop hadoop  393 Nov 13 20:05 authorized_keys
-rw------- 1 hadoop hadoop 1679 Nov 13 20:00 id_rsa
-rw------- 1 hadoop hadoop  393 Nov 13 20:00 id_rsa.pub

        登录测试

        使用ssh命令登录hadoop01,第一次登录需要输入yes进行确认,第二次以后登录则不需要,此时表明设置成功,具体操作如图所示。

[hadoop@vm05 .ssh]$ ssh vm06
Last login: Mon Nov 13 21:12:13 2023
[hadoop@vm06 ~]$ ssh vm07
Last login: Mon Nov 13 21:12:14 2023
[hadoop@vm07 ~]$ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1204575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Libhybris之线程局部存储TLS实例(五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

二十三、W5100S/W5500+RP2040树莓派Pico<Web I/O 通过网页控制板载LED灯>

文章目录 1 前言2 简介2 .1 什么是Web?2.2 Web的优点2.3 Web数据交互原理2.4 Web应用场景 3 WIZnet以太网芯片4 HTTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 Web只是一个静态的文…

电源基础元件

文章目录 电源基础元件理想电压源理想电流源受控电源 电源基础元件 理想电压源 定义 其两端电压总能保持定值或一定的时间函数,其值与流过它的电流i无关的元件叫理想电压源 理想电压源的电压、电流关系 1.电源两端电压由电源本身决定,与外电路无关&…

桶装水订水送水app有哪些功能?

桶装水订水送水app是一款专为送水工量身打造的提供送水服务的软件,在这里,送水人员将更好的在线发布一些送水信息,在线接单等功能,极大的提高了工作效率,方便了日常生活。 系统的商户端,专为送水工日常送水…

【计算机网络】VRRP协议理论和配置

目录 1、VRRP虚拟路由器冗余协议 1.1、协议作用 1.2、名词解释 1.3、简介 1.4、工作原理 1.5、应用实例 2、 VRRP配置 2.1、配置命令 2.2、拓扑与配置: 1、VRRP虚拟路由器冗余协议 1.1、协议作用 虚拟路由冗余协议(Virtual Router Redundancy Protocol&am…

2023nacos源码解读第2集——nacos-server的启动

nacos 是一个典型的server-client中间件,server这里安装最新的nacos-server 2.3.0-BETA版本 1.docker启动nacos-server 镜像详情参考nacos-docker项目的readme ,很方便,但是官方提供的nacos-server镜像往往可能滞后,且不便于后续…

【Java 进阶篇】JQuery DOM操作:舞动网页的属性魔法

在前端的舞台上,属性操作是我们与HTML元素进行互动的关键步骤之一。而JQuery,这位前端开发的巫师,通过简洁而强大的语法,为我们提供了便捷的属性操作工具。在这篇博客中,我们将深入研究JQuery DOM操作中的属性操作&…

C语言--1,5,10人民币若干,现在需要18元,一共有多少种?

今天小编给大家分享一下穷举法的一道典型例题 一.题目描述 1,5,10人民币若干,现在需要18元,一共有多少种? 二.思路分析 总共有18块钱,设1元有x张,5元有y张,10元有z张,则有表达式:x5y10z18,穷举法最重要的…

Unity中雾效的实现方法二

文章目录 前言一、声明雾效所需要的内置变体二、在 v2f 中声明顶点传入片段中的雾效插值器三、 在顶点着色器中计算雾效采样四、在片元着色器中进行雾效颜色混合在这里插入图片描述 五、最终效果 前言 Unity中雾效的实现方法二,使用 Unity 自带的方法实现&#xff…

Spring IOC - BeanDefinition解析

1. BeanDefinition的属性 BeanDefinition作为接口定义了属性的get、set方法。这些属性基本定义在其直接实现类AbstractBeanDefinition中,各属性的含义如下表所示: 类型 名称 含义 常量 SCOPE_DEFAULT 默认作用域:单例模式 AUT…

4.CentOS7安装MySQL5.7

CentOS7安装MySQL5.7 2023-11-13 小柴你能看到嘛 哔哩哔哩视频地址 https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source9ba3044ce322000939a31117d762b441 一.解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz1.在/usr/local解压 tar -xvf mysql-5.7.44-…

22.构造一个关于员工信息的结构体数组,存储十个员工的信息

结构体问题。构造一个关于员工信息的结构体数组,存储十个员工的信息,包括员工工号,员工工资,员工所得税,员工实发工资。要求工号和工资由键盘输入,并计算出员工所得税(所得税工资*0.2&#xff0…

微服务概览

单体架构 传统的软件应用为单体架构。尽管也是模块化逻辑,但是最终还是会打包并并部署为单体应用。最主要的原因是太复杂。并且应用扩展性低,可靠性也低。敏捷开发和部署变得无法完成。 治理办法:化繁为简,分而治之。 微服务起源…

JavaScript从入门到精通系列第三十六篇:详解JavaScript中的事件监听和事件响应

文章目录 一:什么叫事件 1:概念 2:处理这个事件 (一):鼠标单机按钮 (二):鼠标双机按钮 (三):鼠标移动 3:写法弊端 4:Dom Event 二:监听事件 1:元素事…

SpringCloud微服务:服务拆分

不同的数据库之间,如何共同调用?接下来讲讲两个数据库之间如何交互 1、微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务 2、微服务可以将业务暴露为接口,供其它微服务使用 3、不同微服务都应该有自己独立的数据库…

中断处理机制解析

要处理中断,需要有一个中断处理函数。定义如下: irqreturn_t (*irq_handler_t)(int irq, void * dev_id);/*** enum irqreturn* IRQ_NONE interrupt was not from this device or was not handled* IRQ_HANDLED interrupt was handled by this de…

Netty实现通信框架

一、LengthFieldBasedFrameDecoder的参数解释 1、LengthFieldBasedFrameDecoder的构造方法参数 看下最多参数的构造方法 /*** Creates a new instance.** param byteOrder* the {link ByteOrder} of the length field* param maxFrameLength* the maximum len…

Ubuntu中安装R语言环境并在jupyter kernel里面增加R kernel

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…