1、Linux遠程SSH登陸之密鑰認證linux
1.一、putty遠程登陸密鑰認證shell
putty密鑰認證,首先須要用到putty密鑰生成工具(PUTTYGEN.EXE)。而後是該工具的使用界面如圖:安全
一、Generate 生成密鑰 bash
二、Parameters 密鑰類型相關參數服務器
感興趣的話能夠修改Parameters 密鑰類型相關參數,默認值已經知足需求了。點擊Generate生成後會出現以下畫面:網絡
注:鼠標要在當前對話框晃動才能加快密鑰的生成,不然密鑰建立會很慢,甚至不生成建立。ssh
當密鑰生成建立完成之後會給出以下畫面: 編輯器
一、Pubic key for pasting into OpenSSH authorized_keys file:工具
粘貼到OpenSSH authorized_keys文件的公開密鑰測試
二、Key fingerprint 密鑰相關信息(根本沒什麼修改的)
三、Key comment 定義密鑰名稱,便於區分
四、Key passphrase 給當前密鑰設置密碼
五、Confim passphrase 確認密鑰的密碼
六、Generate a public/private key pair 生成一個公鑰/私鑰對 (這裏生成過了,能夠從新生成)
七、Load an existing private key file 加載一個現有的私鑰文件
八、保存生成的公/私鑰 Save public key(保存公鑰)Save private key (保存私鑰)
這裏須要給三、Key comment設置名稱,也能夠保持默認。建議要給四、Key passphrase設置密碼,五、Confim passphrase在確認一下設置的密碼。選擇保存公鑰或私鑰比較安全的路徑並定義名稱。
如今已經有了一對公私鑰,就要把公鑰複製到Linux了。可是不當心把Puttygen.exe關閉了找不到公鑰了怎麼辦?有兩種方法能夠找到生成的公私鑰。具體以下:
從新打開Puttygen.exe如圖:
一、Load an existing private key file 加載一個現有的私鑰文件
會彈出剛纔保存的密鑰存放窗口找到公鑰或私鑰文件(保存公鑰是沒有文件後綴名的,可使用記事本打開。保存的私鑰是以.ppk後綴名結尾的,也是能夠直接使用記事本打開)。當你完成之後會提示輸入密鑰密碼以下圖,若是忘記密碼,也不要緊從新生成便可。
接下來就能看到公鑰了,如圖:
接下來使用Putty.exe遠程鏈接Linux並完成如下操做;
mkdir /root/.ssh #在root家目錄下建立一個.ssh目錄,這個目錄默認不存在的。 chmod 700 /root/.ssh #更改這個目錄的權限 vi /root/.ssh/authorized_keys #使用vi編輯器把公鑰內容粘貼到/root/.ssh/authorized_keys文件內。
完成之後按下鍵盤左上角"Esc"鍵從編輯模式到命令模式,輸入:wq回車確認便可完成
到這裏還並未完成,還要關閉SELinux,SELinux是CentOS的一種安全機制,若是不關閉SELinux,使用密鑰認證登陸的時候會給出錯誤提示「server refused our key」,從而致使登陸失敗,運行命令以下:
sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinx/config #這裏使用sed把/etc/selinux/conf配置文件內容的SELINUX=enforcing替換成SELINUX=disabled,保障每次系統重啓SELinux不會開啓。重啓才能生效。 setenfoce Permissive #無論系統是否重啓SELinux當前都是處於關閉狀態
設置Putty經過密鑰遠程Linux
打開Putty.exe按照圖示來操做
一、選中須要使用遠程Linux使用密鑰驗證的服務器
二、加載選中Linux服務器配置信息
三、選中SSH 選項
四、選中Auth選項
五、選中私鑰文件路徑
六、選中私鑰文件
七、打開
八、Session 會話
九、Save 保存
十、Open 打開
輸入密鑰的密碼完成密鑰驗證,就不須要root密碼登陸Linux了。
1.2 Xshell遠程鏈接Linux之密鑰驗證
打開Xshell,選擇工具—用戶密鑰管理者如圖:
以上就是Xshell生成密鑰的步驟,與Puttygen.exe相似
接下來把Xshell生成的公鑰粘貼到/root/.ssh/authorized_keys文件內。如圖:
圈顏色部分是Putty遠程公鑰,第一行作備註(作備註可使用中文,便於區別公鑰);前提必定要是以#號開頭。
斷開Xshell鏈接,而後修改鏈接信息如圖:
肯定以後雙擊修改的鏈接 輸入帳號以後如圖:
2、單用戶、救援模式之忘記root密碼
2.一、單用戶模式
單用戶模式是沒有網絡服務的,就不能遠程操做了。這裏就以虛擬機爲例來進入系統的單用戶模式。進入單用戶模式就須要重啓Linux系統,重啓命令以下:
reboot #當即重啓 shutdown -r now #當即重啓 shutdown -r +1 #一分鐘之後重啓 init 6 #切換Linux的運行級別6 運行級別6表示重啓。此命令的做用就是重啓
圈紅的意思是:使用方向鍵 ↑ 或 ↓鍵作出選擇,按下鍵盤'e'鍵編輯選中的選項,或者按下鍵盤'c'鍵進入命令提示行模式。默認3秒幫你自動選擇默認選項。
出現上述畫面按下方向鍵 ‘↑’ 或 ‘↓’鍵,不讓系統3秒幫你作出選擇。選擇第一項在按下'e'鍵進入系統編輯模式如圖:
須要使用方向鍵 '↓' 向下翻找到以linux16開始的行,如圖:
移動光標到 ro rhgb quiet LANG=en_US.UTF-8處 把'ro'改爲'rw init=/sysroot/bin/bash' 如圖:
根據提示按下 'Ctrl+x' 鍵開始啓動單用戶模式。等待幾秒鐘就出現下圖
注意:這個系統不是安裝在服務器硬盤的真實Linux系統,只是加載在內存的虛擬系統。修改root密碼就須要加載安裝在服務器硬盤內的Linux系統。
須要執行chroot /sysroot/ 命令來掛載安裝在服務器硬盤內真正的Linux操做系統。如圖:
到這裏就可使用命令 passwd來修改root密碼,如圖:
密碼已經修改爲功,這裏就須要從服務器硬盤裏的Linux系統登出(Crlt+d;exit;logout 三個命令任意一個均可以)執行重啓命令(reboot;init 0;shutdown -r now)。
注:以前已經把/etc/selinux/config配置文件內的SELINUX=enforcing改成SELINUX=disabled的話,就不須要執行 touch /.autorelabel
沒有處理SELinux開機關閉的操做,就必須執行 touch /.autorelabel 操做才能使修改的密碼生效。
若是不肯定的話,建議仍是執行一下 touch /.autorelabel
重啓完成出現登陸界面,就可使用新設置的密碼登陸了。
2.2 救援模式
若是GRUP加密了,不能使用單用戶模式,那就要用到安裝系統時光盤、U盤的救援模式。以虛擬機演示,關閉虛擬機,編輯虛擬機配置(選中須要使用救援的虛擬機右鍵-設置)如圖:
把CD-ROM Drive按鍵盤"+"號調整到第一位後如圖:
以後自動重啓,並以光盤啓動(和初裝系統一樣畫面)如圖:
到這步剩下的修改root密碼和單用戶模式同樣,這裏就不在演示了。修改完畢記要設置虛擬機硬件光驅開機不鏈接。如圖:
3、虛擬機克隆
虛擬機在克隆前要處於關閉狀態,選中須要克隆的虛擬機名稱鼠標右擊-管理-克隆,如圖:
啓動克隆的虛擬機並作某些必要的設定,如圖示:
一、重啓網絡服務;二、查看ip地址;3測試虛擬機可否上網
爲了變越區分主機,修改Linux主機名:
hostnamectl set-hosname linux-202 vi /etc/hostname #以上兩條命令均可以修改主機名,任選一條便可。
把另外一臺Linux主機名也用一樣方法修改,這裏就不演示了。
4、兩臺Linux相互登陸
在演示兩臺Linux相互登陸前,不得不提一下關於命令行前面的內容說明:
[root@linux_201 ~]# 解釋說明:[用戶名@主機名 工做目錄]# [root@linux_202 ~]# 上面除了主機名不一樣其它信息相同,其中'~'表示用戶的家目錄,#表示爲超級管理員命令提示符;後面會遇到$開始的命令提示符,$表示爲普通用戶的命令提示符。
Xshell鏈接兩臺Linux主機任意一臺,執行以下圖:
ssh的客戶端都支持密鑰認證,在Linux上也是支持密鑰登陸具體操做以下圖:
一、ssh-keygen 生成公、私鑰的工具
二、詢問是否更改私鑰存放路徑,不更改的話使用的路徑爲(/root/.ssh/id_rsa)
三、給私鑰設置密碼 四、再次確認私鑰的密碼
圈紅部分告訴你的公、私鑰存放路徑 ,其中id_rsa是私鑰須要保存在本機的,id_rsa.pub是公鑰須要複製到被遠程的Linux服務器上
查看生成的公鑰並複製到粘貼板,如圖:
而後斷開Linux_202主機,回到Linux_201主機上執行 logout 命令便可,並使用vi編輯器編輯/root/.ssh/authorized_keys文件如圖:
完成後按下'Esc'鍵,輸入:wq 能夠測試使用linux_202主機遠程鏈接Linux_201主機測試,以下圖
ssh是Linux下的遠程工具
ssh遠程的必要的4個條件
主機名或ip | 用戶 | 密碼 | port(端口) |
192.168.8.201 | root | ****** | 默認 22 |
在Linux遠程時能夠 縮寫爲 ssh 192.168.8.201
正常應該使用 ssh user@ip或主機名 -p 指定端口 爲何簡寫了,由於在當前Linux系統下命令行前面都會有用戶信息[root@linux_22 ~]# 因此 ssh 192.168.8.201 就會以root帳號去鏈接。-p是指定修改ssh服務端口是才使用,不加-p都是以22端口鏈接。