1. 程式人生 > >忘記root密碼後怎麽解決?克隆虛擬機後如何實現兩臺linux相互登錄?

忘記root密碼後怎麽解決?克隆虛擬機後如何實現兩臺linux相互登錄?

克隆 登錄 遠程 linux

使用單用戶模式破解更改root密碼:


1、如果忘記linux的root密碼,可以進入單用戶模式更改root密碼,首先我們重啟虛擬機,操作如下:

技術分享技術分享

2、重啟系統後,3秒鐘內按向下的方向鍵,讓它停留在開機界面,如下圖:

技術分享技術分享

3、按方向鍵停留在第一行,按字母e編輯它,然後進入另外 一個界面,通過向下方向鍵往下定位到linux 16開頭的行,把ro 改成rw init=/sysroot/bin/bash,如下圖:

技術分享技術分享

4、改完成後然後直接按Ctrl+x,系統就會進入如下界面,這樣就正式進入emergency模式。

技術分享技術分享

5、首先切換到原始系統,然後再修改root密碼,操作過程如圖:

說明:chroot命令用來切換系統,/sysroot目錄就是原始系統(也就是我們的CentOS7系統),passwd命令就是修改root密碼的命令。因為VMwave裏面它不支持中文,出現的小方塊俗稱亂碼,輸入LANG=en,這個命令就是把當前終端的語言設置為英文。密碼改完之後還需要一個額外 的操作,輸入命令:touch /.autorelabel 然後按Ctrl+D,輸入命令reboot重啟,完成更改。

技術分享技術分享


使用救援模式破解更改root密碼:


備註:救援模式(即rescus模式,這個模式主要應用於系統無法進入的情況,比如grub損壞或某一個配置文件修改出錯,如grub設置了密碼時你不記得了那你就無法使用單用戶更改root密碼,所以要進入救援模式更改密碼)


1、在VM虛擬機上設置光盤啟動。

技術分享技術分享

2、設置完成後,在VMware左側選中這臺虛擬機並右擊,從中選擇“電源”——“打開電源時進入固件”,最終結果到第二張圖。

技術分享技術分享

技術分享

技術分享設置完這步之後,直接按F10保存設置並退出進入系統。

3、隨著進入光驅啟動界面,使用上下方向鍵選擇Troubleshooting回車進入。如圖:

技術分享技術分享

4、回車出現如下界面,使用向下方向鍵選擇Rescue a CentOS Linux system

技術分享技術分享

5、連接敲兩次回車,出現如下所示界面

技術分享技術分享

備註:其中有一些提示,它告訴我們,初始系統在/mnt/sysimage下面,其實這和上一節的/sysroot類似。這裏有4個選項:選擇第1項將會繼續往下走,選擇第2項將會把初始的系統掛載為只讀模式,我們不能寫磁盤,也就意味著不能再修改配置文件,也不能更改root密碼,選擇第3項會直接出現一個shell,而選擇第4項則會重啟。

6、這裏選擇第1項,輸入數字“1”,回車後再次回車,它又再一次告訴我們:初始系統已經掛載到了/mnt/sysimage下面,要想進入初始系統下面,需要執行chroot /mnt/sysimage命令

技術分享技術分享

7、進入初始系統後,執行修改root密碼的命令passwd,如下圖:

技術分享技術分享

備註:執行完成chroot命令之後,你會發現命令行前後有一些變化,即原來的sh-4.2變成了bash-4.2,這就是因為環境變量發生了變化。完成了root密碼的修改,當然救援模式並非只有改root密碼這麽簡單的作用,我們還可以在救援模式下處理一些故障、修復數據等

8、修改完root密碼後,按Ctrl+D組合鍵退出原始系統,然後執行reboot或init 0命令重啟或關機即可,關機後進入BIOS設置硬盤為第一啟動系統或設置VMware關閉光驅即可。


克隆虛擬機:


備註:當你在做實驗的時候你就需要不止一臺虛擬機,當然你也可以重新安裝一臺,但為了不浪費時間,還有一個辦法就是克隆虛擬機。

1、關閉正在運行的Linux系統,關機命令有init 0或shutdown -h now,然後在左側對應的虛擬機名字上單擊鼠標右鍵,選擇“管理”,再選擇“克隆”,如下圖:

技術分享技術分享

2、此時會出現“克隆向導”界面,直接點擊“下一步”按鈕,再點擊“下一步”按鈕,選擇”創建鏈接克隆“,這種類型比較方便節省時間,繼續點擊”下一步“按鈕,然後你可以設定克隆虛擬機的名稱和保存的路徑,接著點擊”完成“,最終完成虛擬機克隆。

3、開啟克隆完成的虛擬機,登錄系統,由於這兩臺系統IP是一樣,所以我們要編輯網卡配置文件更改IP,輸入vi /etc/sysconfig/network-scripts/ifcfg-ens33,然後修改IP ,刪掉uuid那一行,保存退出,然後輸入systemctl restart network.service重啟網卡服務,完成更改。

技術分享技術分享

4、然後把另外一臺虛擬機也開機起來,把主機名更改一下,輸入hostnamectl set-hostname 主機名 ,回車完成更改,輸入hostname查看主機名,完成。

技術分享技術分享


Linux機器相互登錄:


使用密碼登錄:


1、linux虛擬機通過Xshell遠程登錄aminglinux-01,然後在第一臺機器上執行如下命令:

[root@aminglinux-02 ~]# ssh 192.168.1.237

The authenticity of host ‘192.168.1.237 (192.168.1.237)‘ can‘t be established.

ECDSA key fingerprint is 89:19:99:8c:63:ff:d9:e6:19:0d:81:03:27:54:49:78.

Are you sure you want to continue connecting (yes/no)? yes //第一次登錄對方機器,有一提示

這裏我們直接輸入 yes,然後回車,出現如下警告,它的意思是保存了192.168.1.237這臺機器的信息:

Warning: Permanently added ‘192.168.1.237‘ (ECDSA) to the list of known hosts.

[email protected]‘s password:

輸入192.168.1.237的root密碼後,成功登錄aminglinux-01這臺機器

Last login: Thu Oct 19 19:31:23 2017 from 192.168.4.84

[root@aminglinux-01 ~]#

備註:這裏可以使用whoami查看當前登錄用戶,標準連接寫法是 ssh username@ip 即 ssh [email protected] ,命令w查看系統負載 如下圖:

技術分享


小知識:ssh默認端口是22 ,從以上連接我們可以看出,我們是直接遠程連接,假設有的機器端口不是22而是其它,那我們需要如何連接,可以輸入命令:ssh -p 22 [email protected]

技術分享技術分享


使用密鑰登錄:


1、linux上有一個工具叫ssh -keygen,在linux機器直接輸入,如下。


[root@aminglinux-02 ~]# 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:

34:8c:69:21:37:db:d5:8c:14:b2:a2:bd:a8:1f:7c:11 root@aminglinux-02

The key‘s randomart image is:

+--[ RSA 2048]----+

| . + ..+= |

| o O +. o |

| E * |

| + + . |

| . o S |

| . . o |

| + o |

| . o |

| ... |

+-----------------+

[root@aminglinux-02 ~]#


也可以通過命令 ls /root/.ssh/ 查看私鑰與公鑰文件目錄,如下:


[root@aminglinux-02 ~]# ls /root/.ssh/

authorized_keys id_rsa id_rsa.pub known_hosts


備註:如果 一個機器登錄另外一個機器,那麽我們就需要把這個機器上的公鑰復制到另個一臺機器上,這兩個是一對,假設02機器通過密鑰登錄01機器,那02機器需要私鑰,01機器需要公鑰。


2、我們從02這臺機器上輸入命令cat /root/.ssh/id_rsa.pub ,把公鑰復制出來,如下。


[root@aminglinux-02 ~]# cat /root/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xiK5bBsPEKn8Iii1GRN0w1C2H0IvQ6GeTJuLq/aePNFh06rDuxQujAc2tgdrRDekSeeDKJ/WNRhRJD7hkMs27XA3yNWoz0GtjShsKxinwYKTXwUmSzM825YFWCuHRv4nVWjTy6gFNbjeIy57RjTMLo1lVe+UNOq686xq/WQH0eumyrkNK+OCoPxLEWvsbSpRzL+TPwjkdL36OhdFgGVjjmBfsqA8Hgd5f4++AQF4tWS5x/F/4GbJmUAvT4IBxNbbl2iKNeq//uZGgVe7tgWHULlxWQn5GEjLCQGYASbxfzjx1UqKyanWZHOVhjfGfWfg0bZK5j0qCqFBh+mKP+B7 root@aminglinux-02


3、把從02機器復制出來的公鑰粘貼到01機器,在01機器輸入命令Vi /root/.ssh/authorized_key 回車打開把公鑰粘貼進去,保存退出。


4、檢查getenforce 查看狀態,臨時關閉selinux 這個防火墻。如下:


[root@aminglinux-01 ~]# getenforce

Enforcing

[root@aminglinux-01 ~]# setenforce 0

[root@aminglinux-01 ~]# getenforce

Permissive

[root@aminglinux-01 ~]#


5、驗證使用密鑰登錄成功,不用密碼,完成。


[root@aminglinux-02 ~]# ssh -p 22 [email protected]

Last login: Thu Oct 19 20:20:05 2017 from 192.168.1.238

[root@aminglinux-01 ~]#


本文出自 “Gary博客” 博客,請務必保留此出處http://taoxie.blog.51cto.com/10245493/1974371

忘記root密碼後怎麽解決?克隆虛擬機後如何實現兩臺linux相互登錄?