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 ~]$ 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值