Ubuntu部署集群环境(3台)
第1章 免密登录
1.1 单台机器实现免密登录
-
首先查看是否安装 openssh-server ,若未安装 openssh-server,则需要先安装 openssh-server。具体操作如下所示。
-
先检查是否安装了 openssh-server,使用如下命令进行检测。
leolei@leifenglin:~$ sudo apt search openssh-server [sudo] password for leolei: Sorting... Done Full Text Search... Done openssh-server/bionic-updates,now 1:7.6p1-4ubuntu0.7 amd64 [installed]secure shell (SSH) server, for secure access from remote machines若屏幕输出上述类似信息则证明本 Ubuntu 系统已经安装了 openssh-server,不需要再额外安装 openssh-server,可以直接进行第二部操作。
-
若未安装 openssh-server,则使用如下命令安装 openssh-server。
sudo apt install openssh-server -
-
首先进入当前用户的目录下,然后在该用户的目录下创建一个文件 .ssh ,然后进入该目录下生成本机公钥,具体操作如下所示。
cd ~
mkdir .ssh
cd ~/.ssh/
ssh-keygen -t rsa
若屏幕输出以下信息,则证明本机公钥已经生成完成。
leolei@leifenglin:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/leolei/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/leolei/.ssh/id_rsa.
Your public key has been saved in /home/leolei/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rUPN8Daw4VxEzef3e7sBt7jjPLTfEPVcVC6sDDfbbvQ leolei@leifenglin
The key's randomart image is:
+---[RSA 2048]----+
| .oo +|
| . o..o |
| + o ooo +|
| o @ + =.++|
| S B +.+o+|
| . o . ++oo|
| o ..=oE|
| . .=.o+|
| .+++=|
+----[SHA256]-----+
为确保公钥已经生成成功,可以检测 目录 ~/.ssh 下是否有文件 ~/.ssh/id_rsa.pub 和 ~/.ssh/id_rsa。若有,则证明公钥生成完成。
leolei@leifenglin:~/.ssh$ ll
total 16
drwx------ 2 leolei leolei 4096 Oct 24 13:22 ./
drwxr-xr-x 7 leolei leolei 4096 Oct 24 13:09 ../
-rw------- 1 leolei leolei 1679 Oct 24 13:22 id_rsa
-rw-r--r-- 1 leolei leolei 399 Oct 24 13:22 id_rsa.pub
用户公钥位置:“~/.ssh/id_rsa.pub”,用户私钥位置:“/.ssh/id_rsa”。
-
将本机公钥发送给本机需要免密ssh访问的节点(基本机)
leolei@leifenglin:~/.ssh$ cat id_rsa.pub >>authorized_keys leolei@leifenglin:~/.ssh$ ll total 20 drwx------ 2 leolei leolei 4096 Oct 24 13:29 ./ drwxr-xr-x 7 leolei leolei 4096 Oct 24 13:09 ../ -rw-rw-r-- 1 leolei leolei 399 Oct 24 13:29 authorized_keys -rw------- 1 leolei leolei 1679 Oct 24 13:22 id_rsa -rw-r--r-- 1 leolei leolei 399 Oct 24 13:22 id_rsa.pub将用户公钥追加到了文件 authorized_keys 中后,可通过命令
cat authorized_keys查看内容。 -
修改授权文件及其所在文件夹的权限
chmod 600 ~/.ssh/authorized_keys chmod 700 -R ~/.ssh修改文件或目录后,输入查询命令查看文件或目录的权限是否修改成功,具体操作如下所示。
leolei@leifenglin:~/.ssh$ ll total 24 drwx------ 2 leolei leolei 4096 Oct 24 13:39 ./ drwxr-xr-x 7 leolei leolei 4096 Oct 24 13:43 ../ -rwx------ 1 leolei leolei 399 Oct 24 13:29 authorized_keys* -rwx------ 1 leolei leolei 1679 Oct 24 13:22 id_rsa* -rwx------ 1 leolei leolei 399 Oct 24 13:22 id_rsa.pub*若在屏幕查看到如上信息则证明文件或目录权限修改成功。
-
验证本机免密登录是否配置成功
执行以下命令,若未输入密码登陆成功,则代表配置成功。
leolei@leifenglin:~/.ssh$ ssh localhost The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:zqE9cfcuHC4WNoH1iAg3GjYJ2l96cKgr2x7pWiWMMpQ. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-213-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/proSystem information as of Fri Oct 24 13:39:21 UTC 2025System load: 0.08 Processes: 103Usage of /: 12.1% of 48.42GB Users logged in: 1Memory usage: 11% IP address for enp0s3: 10.0.2.15Swap usage: 0%* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8sjust raised the bar for easy, resilient and secure K8s cluster deployment.https://ubuntu.com/engage/secure-kubernetes-at-the-edgeExpanded Security Maintenance for Infrastructure is not enabled.0 updates can be applied immediately.170 additional security updates can be applied with ESM Infra. Learn more about enabling ESM Infra service for Ubuntu 18.04 at https://ubuntu.com/18-04New release '20.04.6 LTS' available. Run 'do-release-upgrade' to upgrade to it.若输入上述命令后,第一次需要输入一个 yes 才能本机登录,第二次则可以直接登录。若想退出 localhost 登录,可以使用命令
exit,若屏幕输出如下信息则证明成功退出 localhost 登录。Last login: Fri Oct 24 13:43:40 2025 from 10.0.2.2 leolei@leifenglin:~$ exit logout Connection to localhost closed. leolei@leifenglin:~/.ssh$
1.2 多台机器实现免密登录
重新创建两台虚拟机,本文推荐使用 VirtualBox 软件的复制功能创建虚拟机,然后修改主机名和 IP 地址,使三台虚拟机的 IP 地址各不相同,然后将三台虚拟机添加到同一个 NAT 网络当中。
-
修改主机名,完全复制虚拟机后,它们的 IP 地址和主机名完全相同,所以需要修改主机名和 IP 地址,这里先修改主机名,具体操作如下所示。分别将新建的虚拟机的主机名修改为 leifenglin1 和 leifenglin2。具体命令如下所示。
sudo hostnamectl hostname leifenglin1 sudo hostnamectl hostname leifenglin2具体修改主机名的方法可以参考网址:https://blog.csdn.net/2301_77987130/article/details/153523187?spm=1011.2415.3001.5331
-
修改机器上的/etc/hosts文件,添加主机名“leifenglin1”【和leifenglin2】登录和他对应的IP地址之间的映射,使得每台机器都可以通过主机名登陆其他机器。具体操作如下:
-
查看两台机器的ip地址,发现两台虚拟机的 IP 地址都是相同的,都是 10.0.2.15,这里我们需要修改 IP 地址。修改 IP 地址的方法请参考网址https://blog.csdn.net/2301_77987130/article/details/153848774?spm=1011.2415.3001.5331
ip a本文的主机名及 IP 地址如下表格所示,阅读者可更具自己的情况进行静态 IP 地址的设置。
主机名 IP 地址 leifenglin 10.0.2.15 leifenglin1 10.0.2.16 leifenglin2 10.0.2.17 静态 IP 地址修改完成后可再次通过命令
ip a查看 3 台虚拟机的 IP 地址是否改变,查询到的结果如下所示。


-
修改每台主机的hosts文件
sudo vim /etc/hosts修改后的文件如下所示。



-
将每台主机的公钥发送给对方
#主机leifenglin发送给主机leifenglin1,及leifenglin2 cat ~/.ssh/id_rsa.pub | ssh leolei@leifenglin1 ‘cat - >>~/.ssh/authorized_keys’ cat ~/.ssh/id_rsa.pub | ssh leolei@leifenglin2 ‘cat - >>~/.ssh/authorized_keys’#主机leifenglin1发送给主机leifenglin,leifenglin2 cat ~/.ssh/id_rsa.pub | ssh leolei@leifenglin ‘cat - >>~/.ssh/authorized_keys’ cat ~/.ssh/id_rsa.pub | ssh leolei@leifenglin2 ‘cat - >>~/.ssh/authorized_keys’#主机leifenglin2发送给主机leifenglin1,leifenglin cat ~/.ssh/id_rsa.pub | ssh leolei@leifenglin ‘cat - >>~/.ssh/authorized_keys’ cat ~/.ssh/id_rsa.pub | ssh leolei@leifenglin1 ‘cat - >>~/.ssh/authorized_keys’ -
将主机leifenglin的授权文件发送到主机leifenglin机器上,覆盖原有文件。
scp ~/.ssh/authorized_keys leolei@leifenglin1:/home/leolei/.ssh/authorized_keys scp ~/.ssh/authorized_keys leolei@leifenglin2:/home/leolei/.ssh/authorized_keys
-
验证三台主机是否可以彼此免密登录
ssh leolei@leifenglin1 exit
ssh leolei@leifenglin exit

-
第2章 安装Java环境
本文的 JDK 的安装可以参考网址:https://blog.csdn.net/2301_77987130/article/details/153122819?spm=1011.2415.3001.5331
-
安装jdk
sudo apt install openjdk-8-jdk -
配置环境变量
- 查看一下 java 可执行程序
ls -l /bin/java- 继续再查看/etc/alternatives/java:
ls -l /etc/alternatives/java- 可以看到 /etc/alternatives/java 也是个符号链接,它指向了最终的实际文件夹:
ls -l /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java- OpenJDK 安装后,具体安装路径可以通过下面的命令查得:
readlink -f $(which java)- 根据以上信息,编辑 /etc/bash.bashrc 资源文件
export JAVA_HOME= /usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH -
最后的检查。 重新登录检查一下:
java -version
`
- OpenJDK 安装后,具体安装路径可以通过下面的命令查得:
readlink -f $(which java)
- 根据以上信息,编辑 /etc/bash.bashrc 资源文件
export JAVA_HOME= /usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
-
最后的检查。 重新登录检查一下:
java -version
