概述
- 有时候我们会忘记自己设置的密码,在windos下我们经常用到的是重装系统。那么在linux系统下我们也需要重装系统吗?当然不用,这里我们就需要进入emergency mode更改root密码。这个模式也可以叫做单用户模式,本文将会讲到如何进入该模式,当然这个模式不止可以用来修改密码哦。
注意:
修改完root密码后,不要忘记输入这个命令,不然密码不会重置哦
touch /.autorelabel
- 我们的系统会因为某些硬件或软件问题导致无法进入的情况,这时需要用到救援模式即rescue模式,本文将对其进行简单的讲解,如怎么进入?!
- 之前的文章讲到了,用windos的客户端软件去登录linux系统的机器。那么两台linux机器相互登录该如何去实现呢?这就是本文后半段将要讲的了,但是在这之前需要两台linux机器,所以在这之前我们还需要一台有linux系统的机器,而克隆虚拟机可以帮助我们做到。
单用户模式
重启客户端
关机命令
shutdown -h now
halt
poweroff
init 0
重启客户端的命令
reboot
init 6
shutdown -r now
reboot
还可以直接用重启虚拟机
关机命令:
init 0
poweroff
进入安全模式
重启后 按上下方向键 并按 e键
E
然后
ro 为只读 需要改为rw可读写 再在后面加上:
init=/sysroot/bin/sh
并用CTRL +X 结束,然后就看到下面的样子,我们就能输入命令了
因为我们现在相当于在一个内置程序中,所以还需要输入命令, 切换到原来的系统
chroot /sysroot/
cat /root/.ssh/authorized_keys
使用更改密码命令:
passwd root
出现乱码后 使用 CTRL +C取消键入 并输入
LANG=en//注意需要区分大小写
然后 再次输入 修改密码命令并输入新密码
passwd root
最后输入命令 重启之后即可使用新密码登录客户机
touch /.autorelabel
注意,这个文件名字一定要写对,否则更改的密码将不能生效。执行这一步的作用是让SELinux生效,如果不执行,则我们修改的密码不会生效
补充一下: 这里的重启不是像直接按电脑电源键那种(当然也可以那样),我们需要先用CTRL+D退出当前的用户,然后输入重启命令,如reboot重启
救援模式
编辑虚拟机设置 并进入bios界面
设置bios
重启之后
得到一个文件路径
用刚才得到的文件路径 回到原来的系统 并用
chroot /mnt/sysimage//刚才得到的文件路径
passwd root//修改密码
最后再重启
重启之前需要关闭 光盘启动
克隆虚拟机
首先要克隆一个虚拟机
要关闭虚拟机才能进行克隆哦
修改ip地址并重启网络服务
克隆的时候连网络配置一起克隆了,因为像ip地址这种东西一样,其中一个会要不得,所以我们要去修改一下网络配置文件,修改ip的文件路径
vi /etc/sysconfig/network-scripts/ifcfg-ens33
按i修改文件配置 然后esc :wq 保存文件
重启网络服务
systemctl restart network.service//重启网络服务
查看ip
ifconfig
查看网络是否能连接外网
ping www.baidu.com
设置主机名字
查看主机名
hostname
更改主机名字
hostnamectl set-hostname centos002//最后是主机名字
linux机器互相登录ps:工作中会经常用到
登录
输入所需登录的主机的ip地址和密码
在虚拟机上输入命令行
ssh-keygen
获得密钥所在的文件路径
[root@aminglinux01 ~]# ssh-keygen //生成密钥的命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): //问你要不要设置密钥的密码,这里没有设置
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa. //你私钥保存的路径,不管
Your public key has been saved in /root/.ssh/id_rsa.pub. //公钥保存的路径,这个等下需要用
The key fingerprint is:
SHA256:Wikd7AxMfSLg9O+KVxEiLsrWtB+XmRZSCv1AHae3kc0 root@aminglinux01
The key's randomart image is:
+---[RSA 2048]----+
| =ooo.. |
| +.*o+* = |
| .o.O+oB E |
| ...o Oooo |
|..o.. o So |
|.o o . @. |
|. . =.. |
| o.. |
| ... |
+----[SHA256]-----+
找到公钥并复制公钥的字符串
[root@aminglinux01 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRmxtWuG1UvdqSSJGIlDJsAMYrQiSibkpyfPsK2HHn8ekSwkSNpcNLVGC9Z7GMe93/EE0AtlBma6pOdTMZ5aHPjI6TsgO3geTokisk5OJZUuJnI8Fz7aFTlrbTo9Ud8NA5w4sbFUvHTpbFnrskN7ePFN3ptlWjPUI+lXwDEeExBNk7nx5nW4OArIRxmlmDa4T1V+nGj09qo5dP1VXr0E2EZ3aaGYloTuVcgg02Jy2/8TX2Tdqsc4EzkcQLECbklmVtccDpbB74nU+nBIOwgYTMjL0i22To+dCwAKYlpKQK8UmqQGqRHmr+uYhkYdUwaEQRQdkt2TwzOibmMKlIgYih root@aminglinux01
打开需要设置密钥的虚拟机
没有东西的话是要像最开始那样,修改文件的权限的哦。要是里面有东西可以按G把光标定位到文末,再按O键粘贴公钥,Esc保存退出
vi /root/.ssh/authorized_keys//存放密钥的文件路径
检查防火墙是否开启:
getenforce//检查防火墙是否开启
关闭防火墙
setenforce 0//暂时关闭防火墙
[root@localhost ~]# getenforce
Enforcing //这个表示强制执行,也就是打开的咯
[root@localhost ~]# setenforce //光输入前面这个就会弹出个选项,问你是开(1)还是关(0)
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive //容许,宽容模式
最后
切换到私钥存放的虚拟机 再次连接另一台机器时 就不需要再次输入密码了。那咋个连喃?直接登ip地址
问题; 这里我为了方便复制都是用的xshell登录的,现在连个机器虽然可以要相互登录,但是需要密码,正常应该不需要密码直接登录。(明天搞一搞)
[root@localhost ~]# ssh 192.168.18.128 //克隆机登录本体
The authenticity of host '192.168.18.128 (192.168.18.128)' can't be established.
ECDSA key fingerprint is SHA256:tf95711Zzo2FPC/2CwaXqcHwTKaldC7VEVRBO+NnFuE.
ECDSA key fingerprint is MD5:e8:5e:ef:d0:ee:50:1b:8e:e6:65:f6:40:02:c0:b8:04.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.18.128' (ECDSA) to the list of known hosts.
root@192.168.18.128's password:
Last login: Thu May 31 23:47:07 2018 from 192.168.18.1
[root@aminglinux01 ~]# 登出
遇到的问题
在用ssh连接另一台机器的时候无法连接
输入命令行:
vi /etc/ssh/ssh_config
并修改文件配置 文件末尾添加
StrictHostKeyChecking no
UserKnownHostsFile /dev/nul
保存并退出后即可