Linux SSH免密登录

       

目录

         简介

        创建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 ~]$ 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常见光模块的封装有哪些呢?

光模块的封装,保障了光通信的稳定和可靠性。本文介绍几种常见的光模块的封装类型。 19封装–焊接型光模块,一般速度不高于千兆,多采用SC接口。 SFP封装:SFP(Small form-factor pluggable)意思是小型可拔插…

金蝶云星空将子窗体的内容传回到父窗体的开发实现

文章目录 金蝶云星空将子窗体的内容传回到父窗体的开发实现前置任务父窗体打开子窗体时传入回调函数子窗体设置返回参数父窗体接收参数在回调函数根据参数做一些逻辑处理 金蝶云星空将子窗体的内容传回到父窗体的开发实现 前置任务 金蝶云星空表单插件实现父窗体打开子窗体&a…

合合信息亮相新加坡科技周——Big Data AI World Expo展示AI驱动文档数字化的前沿能力

展会规模背景: 2023年10月11日-12日,合合信息在TECH WEEK SINGAPORE(新加坡科技周)亮相,并在人工智能世界博览会(Big Data & AI World)展示合合信息核心人工智能文字识别技术能力。合合信息…

无人机航迹规划:五种最新智能优化算法(KOA、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(KOA、COA、LSO、GRO、LO)简介 1、开普勒优化算法KOA 开普勒优化算法(Kepler optimization algorithm,KOA)由Mohamed Abdel-Basset等人于2023年提出。五种最新优化算法(SWO、ZOA、EVO、KOA、…

上传文件大小限制报错

做了一个上传文件的功能,前端通过文件流程的形式调用后台接口。几百k的文件能成功,几M的文件会失败。原因有二 第一是被nginx限制,请求也无法转发到应用服务器里面(也就是tomcat看不到请求日志只有nginx日志能看到请求&#xff0…

设计模式之建造者(Builder)

用来构建复杂对象 分离复杂对象的构建和表示 同样的构建过程可以创建不同的表示 当有一个复杂的对象,构建它的时候,比较复杂 例如,构建一个对象,要传入50个参数,可以先构建part1,再构建part2…最后调用bu…

Git-工作流

前言 一、工作流概述二、Git flow1.主要流程2.优缺点3.适用场景 三、Github flow1.主要流程2.优缺点3.适用场景 四、Gitlab flow1.主要流程2.优缺点3.适用场景 总结参考 一、工作流概述 开发人员通过Git可以记录和追踪代码的变化,包括添加、删除和修改文件。如果是…

【Python 算法】双向迪杰斯特拉算法 Python实现

双向迪杰斯特拉算法Python实现 文章目录 双向迪杰斯特拉算法Python实现简介双向迪杰斯特拉算法优势局限性算法的基本步骤终止条件 基本步骤伪代码Python 实现 简介 双向迪杰斯特拉算法(Bi Directional Dijkstra Algorithm)是一种用于在加权图中查找两个…

红色旅游AR互动体验将景区推向更广泛的市场

AR技术的出现使得各展厅观众可以在虚拟和现实的层面进行互动,利用AR和VR技术,将展览地点扩展到特定的虚拟领域,实现了"无触觉"交互体验,增强现实技术和展馆的对接更加激发人们了解新事物的兴趣。 一、AR景区&#xff1a…

【03】Istio Gateway示例配置

3.1 开放kiali至集群外部 首先将istio-inressateway暴露集群外部; 在node02的ens33网卡上面有多余的ip地址,将该地址绑定在igressgateway的svc 上面。 kubectl edit svc istio-ingressgateway -n istio-system定义kiali的ingress gateway的资源配置清单 apiVersion:…

第十六章,反射与注解例题

package 例题; import java.lang.reflect.Constructor;class 例题1Demo {//变量String s;int i, i2, i3;private 例题1Demo() {//无参构造方法}protected 例题1Demo(String s, int i) {//有参构造方法this.s s;this.i i;}public 例题1Demo(String... strings) throws NumberF…

堆排序(小根堆模板)

输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。 输入格式 第一行包含整数 n 和 m。 第二行包含 n 个整数,表示整数数列。 输出格式 共一行,包含 m 个整数,表示整数数列中前 m 小的数。 数据范围 1≤m≤n≤10^5&am…

Centos8上部署Zabbix5.0

1.关闭Selinux及防火墙,避免Web页面无法访问。 setenforce 0 vim /etc/selinux/config 修改“SELINUX”等号后的内容为disabled SELINUXdisabled\\关闭并关闭开机自启 systemctl stop firewalld systemctl disable firewalld 2.配置Centos8本地yum源。 mkdir /mn…

『MySQL快速上手』-⑦-内置函数

文章目录 1.日期函数1.1 获得年月日1.2 获得时分秒1.3 获得时间戳1.4 在日期的基础上加日期1.5 在日期的基础上减去时间1.6 计算两个日期之间相差多少天案例1案例22.字符串函数案例3.数学函数4.其他函数1.日期函数 1.1 获得年月日

基于Python美化图片亮度和噪点

支持添加噪点类型包括:添加高斯噪点、添加椒盐噪点、添加波动噪点、添加泊松噪点、添加周期性噪点、添加斑点噪点、添加相位噪点,还提供清除噪点的功能。 我们先看一下实测效果:(test.jpg为原图,new.jpg为添加后的图片…

Rust结构体的定义和实例化

1.结构体特点 Rust的结构体跟元组类型比较类似,它们都包含多个相关的值。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活&#xff1a…

浅谈二叉树

✏️✏️✏️今天给大家分享一下二叉树的基本概念以及性质、二叉树的自定义实现,二叉树的遍历等。 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流&…

【CUDA编程--编程模型简介算子开发流程】

官方文档:https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html 什么是CUDA CUDA全称(Compute Unified Device Architecture)统一计算架构,是NVIDIA推出的并行计算平台深度学习加速:对于神经网络&…

无线通信测量仪器-4945B/C 无线电通信综合测试仪

01 4945B/C 无线电通信综合测试仪 产品综述: 4945B/4945C无线电通信综合测试仪是多功能、便携式无线电综合测试类仪器,基于软件无线电架构,集成了跳频信号发生与分析、矢量信号发生与解调分析、模拟调制信号发生与解调分析、音频信号发生与…

C语言求数组中出现次数最多的元素

一、前言 遇到一个需求,需要求数组中出现次数最多的元素,查找了一些资料,结合自己的思路,编写了程序并验证。 只考虑元素为非负整数的数组,如果有出现次数相同的元素,则返回较小元素。 二、编程思路 以数…