我們在工作或試驗中經常會需要登入多台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:c::c4:c:e:d8:a::a:::d:ca:e:d [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檔案夾存在即可。
這樣遠端主機的root使用者的家目錄下的.ssh檔案就會自動生成authorized_keys。
以上兩種方式。
這樣就算配置完成了。就可以嘗試無密碼登陸了。