Mac环境下与virtualbox中的Ubuntu进行ssh通信采坑教程

本文详细介绍了在OSX环境下,如何配置Ubuntu虚拟机的网络设置,实现通过SSH免密登录。包括配置网络地址转换NAT模式、设置IPv4网卡、获取IP地址以及使用ssh-keygen生成公钥私钥,最后完成免密登录的全过程。

废话不多说,本机环境如上OSX,首先,你要有一个安装了Ubuntu的virtualbox虚拟机
关于Ubuntu的版本问题可以选择安装桌面版或者服务器版,问题不大
接下来开始配置
(以桌面版为例)
首先,打开Virtualbox,安装Ubuntu虚拟机(就不在此赘述)(主要是安装过程中也没遇到太多大问题)

1.我选择的是第二个Ubuntu,接下来点左上角的工具,新建一个支持IPV4的网卡,同时要启用DHCP服务器
在这里插入图片描述

2.打开你的虚拟机设置
在这里插入图片描述

3.选择网络
在这里插入图片描述

4.配置网络地址转换NAT模式(为了你能在你的虚拟机中上网)
但是注意,如果只配置这张网卡是不够的,在本地通过

		ifconfig | grep inet

命令查到的IP地址是10.0.**,是不可以用作后面SSH连接服务的在这里插入图片描述

5.接下来配置一个网卡2,也就是你刚刚一开始设置的一张IPV4网卡,后面用作SSH的IP地址也就是这个网卡的IP
在这里插入图片描述

6.然后启动你的虚拟机(其他设置正常的话),打开终端输入

	ifconfig | grep inet

记录下你查到的192开头的地址,127开头的地址是本地回环地址
在这里插入图片描述

7.打开Mac终端,输入命令

ssh -p 22 用户名@IP地址(也就是192.*)

通过本地尝试连接Ubuntu,会提示你输入密码

8.在这里插入图片描述

9.当出现了下图,也就意味着你本次登陆成功了在这里插入图片描述

10.输入exit退出,接下来设置免密登录
在Mac终端下输入

	ssh-keygen

接下来会出现三次提问框,第一个是公钥、私钥将会以什么名字存放在本地,如果你之前没有的话,可以直接默认,如果已经存在,比如github就曾用过,另外两个问题一路默认enter
接下来打开MAC终端,

cd ~(进入家目录)

ls -a(看看本地有没有.ssh文件夹)

cd .ssh(进入.ssh文件夹)

在这个文件夹下你就可以看到是否有过公钥秘钥。

11.接下来最关键的步骤来了,如果你直接使用了默认的名字那么输入

	ssh-copy-id -p 22 (用户名)@(IP地址)

如果你没有使用默认的名字,而是自己指定了新的文件,输入

	ssh-copy-id -p 22 -i (文件名) (用户名)@(IP地址)

12.进入Ubuntu,打开命令行输入

	cd ~

	cd .ssh

	ls

会看到本地多了一个authorized_keys文件

13.接下来再次输入

	ssh -p 22 用户名@IP地址(也就是192.*)

可以发现实现了免密登录。

14.如果不成功的话可以试试删掉那几个文件。

### 如何在 macOS 上配置基于 Ubuntu 的 Kubernetes (k8s) 集群 #### 准备工作 为了在 macOS 上成功搭建基于 Ubuntu 的 Kubernetes 集群,需先准备虚拟化软件 VirtualBox 和轻量级 Linux 发行版 Vagrant 来简化多节点集群的管理。 安装 VirtualBox 及扩展包: ```bash brew cask install virtualbox virtualbox-extension-pack ``` 安装 Vagrant 并验证版本: ```bash brew cask install vagrant vagrant --version ``` #### 创建并初始化项目目录结构 建立用于存放所有文件的工作空间: ```bash mkdir ~/kube-cluster && cd ~/kube-cluster touch Vagrantfile cluster.yaml ``` 编辑 `Vagrantfile` 以定义三台运行 Ubuntu Server 20.04 LTS 的虚拟主机实例[^1]。 #### 编写 Cluster Configuration File 按照给定模板调整 `cluster.yaml` 文件中的 IP 地址和其他参数匹配实际网络环境需求[^3]: ```yaml nodes: - address: 192.168.56.101 user: ubuntu role: - controlplane - etcd - worker - address: 192.168.56.102 user: ubuntu role: - controlplane - etcd - worker services: etcd: snapshot: true creation: 6h retention: 24h network: plugin: canal ``` 注意这里假设使用的是默认 NAT 网络适配器下的私有子网地址范围(如 192.168.56.x),可根据实际情况修改。 #### 启动虚拟机并完成初始设置 通过 Vagrant 命令启动之前定义好的 VM 实例,并登录到每台机器上去做必要的准备工作,比如更新系统、关闭 swap 分区等操作。 ```bash vagrant up for i in {1..3}; do sshpass -p 'vagrant' ssh -o StrictHostKeyChecking=no ubuntu@node$i \ 'sudo apt-get update; sudo apt-get upgrade -y; sudo sed -i '/ swap / s/^/#/' /etc/fstab; sudo swapon --show'; done ``` 上述脚本会依次连接至 node1 至 node3 执行一系列指令来确保各节点处于最佳状态以便后续 kubeadm 初始化过程顺利进行。 #### 使用 Kubeadm 构建 Master 节点 进入 master 节点内部继续执行如下命令序列来进行控制平面组件部署以及加入其他成员节点成为完整的 K8S 集群的一部分: ```bash sudo kubeadm init --pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml ``` 最后一步应用 Calico CNI 插件是为了让 Pod 间能够互相通信。此时应该能看到正在运行的服务列表[^2]: ```bash kubectl get pods -n kube-system ``` #### 加入 Worker Nodes 到集群中 获取 join token 并将其提供给剩余两台 workder nodes 完成注册流程。此步骤通常会在 master 初始化完成后给出具体指导说明。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值