大数据系列——jdk和ssh免密登录

致读者: 博主是一名数据科学与大数据专业大二的学生,真正的一个互联网萌新,写博客一方面是为了记录自己的学习过程中遇到的问题和思考,一方面是希望能够帮助到很多和自己一样处于困惑的读者。
> 由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!之后会写大数据专业的文章哦。
GitHub链接https://github.com/wfy-belief
尽管现在我的水平可能还不太及格,但我会尽我自己所能,做到最好☺
。——天地有正气,杂然赋流形。下则为河岳,上则为日星。


任务目的

  • 熟练安装 JDK
  • 重点掌握配置 SSH 免密登录的方法

任务清单

  • 任务 1:安装 JDK
  • 任务 2:配置 SSH 免密登录

任务步骤

任务 1:安装 JDK

1. 准备软件

JDK 的安装包已经为大家准备好,在 /root/software 目录下,可以使用如下命令进行查看:

cd /root/software/		# 进入目录
ll				# 罗列出当前文件或目录的详细信息,是ls -l的别名

Vditor

图1

大数据系列——jdk和ssh免密登录_第1张图片

2. 解压压缩包

tar -zxvf jdk-8u221-linux-x64.tar.gz 
  • tar 命令:用于打包并压缩和解包并解压缩文件
  • 使用格式:
    • 打包并压缩:tar -zcvf 打包压缩名 文件名/目录
    • 解包并解压缩:tar -zxvf *.tar.gz 格式的打包压缩文件
  • 常用选项:
    • z:gzip,通过 gzip 格式压缩或者解压缩
    • -C:指定需要解压的目录,若是未指定,则解压到当前目录
  • 解压成功,进行验证:

Vditor

图2

大数据系列——jdk和ssh免密登录_第2张图片

大数据系列——jdk和ssh免密登录_第3张图片

3. 配置环境变量

配置环境变量就是在整个运行环境都可以使用的变量,而路径添加到 PATH 类似于在 Windows 平台下将程序添加到注册表,添加某个路径到 PATH 环境变量后,执行该路径下的文件就不需要输入完整的命令路径而只需要输入命令的文件名。

例如,JDK 的安装目录为 /root/software/jdk1.8.0_221,那么要查看 JDK 的版本,需要输入/root/software/jdk1.8.0_221/bin/java -version,但是如果将 /root/software/jdk1.8.0_221/bin/ 配置到 PATH 下,就只需要直接输入java -version

所以如果我们需要经常运行的命令,比如之后经常用到的 hadoophdfs等,我们可以将他们的路径全都放在 PATH 里面,这样运行比较方便。

Linux 环境变量和 Windows 的环境变量一样,分系统环境变量和用户环境变量,系统环境变量对所有用户有效,而用户环境变量只对当前用户有效。

  • 系统环境变量:对于添加给所有用户的环境变量,直接编辑: “/etc/bashrc"或者”/etc/profile";
  • 用户环境变量:对于添加给某一个用户的环境变量,可以编辑用户 /home 目录下的:" 用户名/.bashrc “或者"用户名/.bash_profile”。

(1)在此处我们配置系统环境变量,使用命令:

vim /etc/profile

(2)在最后加入以下两行内容:

export JAVA_HOME=/root/software/jdk1.8.0_221	# 配置Java的安装目录
export PATH=$PATH:$JAVA_HOME/bin		# 在原PATH的基础上加入JDK的bin目录

注意:

  • export 是把这三个变量导出为全局变量。
  • 大小写必须严格区分。

如下图所示:

Vditor

图3

大数据系列——jdk和ssh免密登录_第4张图片

添加完成,使用:wq保存退出。

(3)让配置文件立即生效,使用如下命令:

source /etc/profile

(4)检测 JDK 是否安装成功,使用命令查看 JDK 版本:

java -version

执行此命令后,若是出现 JDK 版本信息说明配置成功:

Vditor

图4

任务 2:配置 SSH 免密登录

通过前面的操作,已经完成了 JDK 的安装和基本配置,虽然这个节点已经可以正常使用了,但是依然存在下列问题。

(1)实际工作中,服务器被放置在机房中,同时受到地域和管理的限制,开发人员通常不会进入机房直接上机操作,而是通过远程连接服务器进行相关操作。
  (2)在集群开发中,主节点通常会对集群中各个节点频繁地访问,就需要不断输入目标服务器的用户名和密码,这种操作方式非常麻烦并且还会影响集群服务的连续运行。

为了解决上述问题,可以通过配置 SSH 服务来分别实现远程登录SSH 免密登录功能。

1. SSH 概念

SSH 为 Secure Shell(安全外壳协议) 的缩写。
  SSH 是一种网络协议,用于计算机之间的加密登录。很多 ftp、 pop 和 telnet 在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。
  SSH 就是专为远程登录会话和其他网络服务提供安全性的协议。

2. SSH 组成

SSH 是由客户端和服务端的软件组成的。
  服务端是一个守护进程(sshd),他在后台运行并响应来自客户端的连接请求。
  客户端包含 SSH 程序以及像 scp(远程拷贝)、 slogin(远程登陆)、 sftp(安全文件传输)等其他的应用程序。

3. SSH 实现过程

具体原理流程如下图所示:

大数据系列——jdk和ssh免密登录_第5张图片

图5

4. SSH 实现步骤

因为我们搭建的是伪分布式集群,所以只准备一台节点,我们可以将此节点即作为服务器端,也作为客户机端,实现自己免密登录自己。

要想实现此功能,首先需要在此节点上生成 root 用户的公钥,然后将生成的公钥文件复制到公钥库文件 authorized_keys 中,然后将公钥库文件 authorized_keys 放置到/root/.ssh 目录下,这样以后每次使用 root 登录本机的时候,就不需要输入密码了。具体操作如下:

(1)下载 SSH 服务并启动

SSH 服务(openssh-server 和 openssh-clients)已经为大家下载好,所以此处直接启动即可:

/usr/sbin/sshd

SSH 服务启动成功后,会默认开启 22(SSH 的默认端口)端口号,可以使用以下命令进行查看:

netstat -tnulp

执行命令,可以看到 22 号端口已经开启,证明我们 SSH 服务启动成功:

大数据系列——jdk和ssh免密登录_第6张图片

图6

大数据系列——jdk和ssh免密登录_第7张图片

只要将 SSH 服务启动成功,我们就可以进行远程连接访问了。开发人员比较常用的远程连接工具有 Xshell、SecureCRT 等。接下来我们继续配置 SSH 免密钥登录。

(2)首先生成密钥对,使用命令:

ssh-keygen
## 或者
ssh-keygen -t rsa

语法解析:

  • ssh-keygen:生成、管理和转换认证密钥。
  • -t:指定密钥类型,包括 RSA 和 DSA 两种密钥,默认 RSA。

上面一种是简写形式,提示要输入信息时不需要输入任何东西,直接回车三次即可

大数据系列——jdk和ssh免密登录_第8张图片

图7

从打印信息中可以看出,私钥 id_rsa 和公钥 id_rsa.pub 都已创建成功,并放在 /root/.ssh 目录中:

大数据系列——jdk和ssh免密登录_第9张图片

图8

(3)将公钥放置到授权列表文件 authorized_keys 中,使用命令:

cp id_rsa.pub authorized_keys

验证:

大数据系列——jdk和ssh免密登录_第10张图片

图9

(4)修改授权列表文件 authorized_keys 的权限,使用命令:

chmod 600 authorized_keys

设置拥有者可读可写,其他人无任何权限(不可读、不可写、不可执行)。

大数据系列——jdk和ssh免密登录_第11张图片

图10

(5)验证免密登录是否配置成功,使用如下命令:

ssh localhost  
## 或者
ssh e2d670ea9ad7
## 或者
ssh 10.141.0.42

其中,localhost 意为“本地主机”,即“这台计算机”;e2d670ea9ad7 为本机主机名,我们可以使用hostname命令进行查看;10.141.0.42 为本机 IP 地址,我们可以使用ifconfig命令进行查看。

  • 查看本机主机名:

Vditor

图11

  • 查看本机 IP 地址:

大数据系列——jdk和ssh免密登录_第12张图片

图12

  • 远程登录成功后,若想退出,可以使用 exit 命令:

大数据系列——jdk和ssh免密登录_第13张图片

图13

大数据系列——jdk和ssh免密登录_第14张图片

你可能感兴趣的:(Hadoop,大数据)