使用ssh-keygen命令生成密鑰對無密碼遠程登陸linux主機

我們在工作或試驗中經常會需要登錄多臺linux主機進行操作,開啓過多的ssh登陸界面,在不同的主機間切換時是非常讓人的抓狂一件事情,只登陸一臺linux主機然後通過此主機ssh登陸到其他主機這樣是比較好的一種方式,但是在ssh登陸到其他主機時頻繁的輸入密碼會讓我們一直做重複的輸入密碼的工作,那有沒有可以自動記住密碼,或者不需要輸入密碼的工具呢?
linux自帶的ssh-kengen命令可以讓我們輕鬆實現無密碼登陸其他主機。

1.使用ssh-keygen -t rsa # //rsa 代表使用rsa的方式加密 ,#是數字,代表生成的密鑰位數。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa)://默認生成的密鑰對存放位置 ,使用-f參數可以手動設置密鑰存放的位置 
Enter passphrase (empty for no passphrase): //生成的密鑰是否設置密碼,不設置的話回車即可,否則輸入密碼(一般不設置密碼,否則的話每次ssh遠程登陸還是需要輸入密碼。)
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:
a8:0c:36:c4:1c:3e:d8:5a:09:8a:48:98:3d:ca:9e:4d [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|o+.              |
|BBoo             |
|*.X.             |
|.= E   .         |
|o B   . S        |
| + = .           |
|    o            |
|                 |
|                 |
+-----------------+

2.將生成的公鑰文件id_rsa.pub保存到需要遠程登陸的主機上的用戶的家目錄下的.ssh文件內(如無此文件夾可手動創建),並命名爲authorized_keys,名稱必須爲此,否則無法遠程登陸成功。
方式一:在遠程主機用戶家目錄手動生成此文件。

[root@sqlmaster ~]# mkdir .ssh
[root@sqlmaster ~]# vim .ssh/authorized_keys

然後將id_rsa.pub內的文件內容複製黏貼至.ssh/authorized_keys文件中即可。
方式二:使用ssh-copy-id 命令拷貝到遠程主機。此命令會自動命名爲authorized_keys,只需要保證遠程主機.ssh文件夾存在即可。

#ssh-copy-id -i id_rsa.pub root@mirrors// -i:指明需要copy的文件 root:遠程時登陸的用戶 mirrors:遠程的主機 (首次copy文件時需要輸入賬戶密碼)

這樣遠程主機的root用戶的家目錄下的.ssh文件就會自動生成authorized_keys。

以上兩種方式。
這樣就算配置完成了。就可以嘗試無密碼登陸了。

發佈了26 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章