【FATE】设置虚拟机固定IP以及免密登录
一、前期准备
1、VMWare上新建三个Centos7的虚拟机
2、VMWare虚拟机的三种联网方式
1、桥接模式 -- 桥接: 默认使用VMnet0
这一种联网方式最简单,在局域网内,你的主机是怎么联网的,你在虚拟机里就怎么连网。把虚拟机看成局域网内的另一台电脑就行了!
2、NAT模式 -- 网络地址转换:默认使用VMnet8
联网方式: 1. 静态IP 2. 动态IP
- 虚拟网卡和虚拟机处于一个地址段,虚拟机和主机不同一个地址段,主机相当于虚拟机的网关,所以虚拟机能ping到主机的IP,但是主机ping不到虚拟机的IP。
- 使用NAT技术,主机能上网,虚拟机就可以访问Internet,但是主机不能访问虚拟机。
3、Host-Only -- 私有网络共享主机:默认使用VMnet1
- 提供的是主机和虚拟机之间的网络互访。只想让虚拟机和主机之间有数据交换,而不想让虚拟机访问Internet;
- 可动态可静态;
二、配置固定IP过程
目标是:
虚拟机名 | ip地址 |
---|---|
CentOS7_1 | 192.168.26.128 |
CentOS7_2 | 192.168.26.129 |
CentOS7_3 | 192.168.26.130 |
1、设置虚拟机网络连接方式NAT,并查看网关
2、修改IP地址并固定
CentOS7_1上:
# nmcli connection modify ${设备名称} ipv4.addresses ${IP及掩码} ipv4.method ${连接模式: manual/auto} ipv4.dns${DNS服务器地址} ipv4.gateway${网关地址}
# CentOS 7 的网卡名字叫做ens33
# 114.114.114.114 是国内移动、电信和联通通用的DNS
# 192.168.26.2 是上一步查到的网关地址
nmcli connection modify ens33 ipv4.addresses 192.168.26.128/24 ipv4.method manual ipv4.dns 114.114.114.114 ipv4.gateway 192.168.26.2
CentOS7_2上:
nmcli connection modify ens33 ipv4.addresses 192.168.26.129/24 ipv4.method manual ipv4.dns 114.114.114.114 ipv4.gateway 192.168.26.2
CentOS7_3上:
nmcli connection modify ens33 ipv4.addresses 192.168.26.130/24 ipv4.method manual ipv4.dns 114.114.114.114 ipv4.gateway 192.168.26.2
三、虚拟机之间免密登录
原理:A 主机 想免密登录 B主机,需要把 A 的公钥发送给 B 授权文件;
1、三主机Root 账号 免密登录
- 我的操作是在 A主机上生成公私钥对,并将其公钥内容附加到其授权文件中,
- 然后复制A主机生成B,C主机,
- 这样三台主机的公私钥对是相同的,且可互相免密登录;
# CentOS7_1
# 在主机 CentOS7_1 的 root 账户上生成公私钥对存在于文件 .ssh 中
ssh-keygen
# 进入 .ssh 文件,将公钥信息 添加到authorized_keys文件中
cd .ssh
cat id_rsa.pub >> authorized_keys
然后复制CentOS7_1 虚拟机,生成CentOS7_2 和 CentOS7_3 虚拟机;
这样三台主机的root账号上的公私钥对都相同,且互相的授权文件中有其他的公钥信息,所以三方root账户可相互免密登录;
2、三主机的root账户、app账户互相免密登录
- 通过上面已实现三台主机root账户的免密登录,为了让app用户也可免密登录,
- 在每台主机上,将root的.ssh 文件 拷贝至 app用户下,并修改app用户对 .ssh 文件的权限即可。
- 这样三台主机上的root账户和app账户下的公私钥对,授权信息完全相同,可互相免密登录;
# CentOS7_1 、 CentOS7_2、CentOS7_3 主机上 root账户 下 分别执行
cp -r .ssh /home/app/.ssh
# 此时 app 对.ssh 文件无权限,修改 .ssh 文件及其子目录
chown -R app:apps .ssh