天天看點

Linux中生成密鑰的兩種方法

linux中生成密鑰的兩種方法

ssh服務支援一種安全認證機制,即密鑰認證。所謂的密鑰認證,實際上是使用一對加密字元串,一個稱為公鑰(publickey), 任何人都可以看到其内容,用于加密;另一個稱為密鑰(privatekey),隻有擁有者才能看到,用于解密。通過公鑰加密過的密文使用密鑰可以輕松解密,但根據公鑰來猜測密鑰卻十分困難。 ssh的密鑰認證就是使用了這一特性。伺服器和用戶端都各自擁有自己的公鑰和密鑰。如何使用密鑰認證登入linux伺服器呢?

在使用密鑰認證遠端登入linux之前,我們先來談論下生成密鑰的兩種方法:

方法一:使用puyttygen.exe密鑰生成工具。

下載下傳生成密鑰工具

完整包 http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip 下載下傳後解壓,其中puyttygen.exe就是咱們所要用到的密鑰生成工具。

生成密鑰對

輕按兩下puttygen.exe, 右下角 “number of bits in a generated key” 把 “1024” 改成 “2048”, 然後點 “generate”, 這樣就開始生成密鑰了,請來回動一下滑鼠,這樣才可以快速生成密鑰對,大約十幾秒後就完成了。 “key comment:” 這裡可以保持不變也可以自定義,其實就是對該密鑰的簡單介紹; “kye passphrase:” 這裡用來給你的密鑰設定密碼,這樣安全一些,當然也可以留白,阿銘建議你設定一個密碼;”confirm passphrase:” 這裡再輸入一遍剛剛你設定的密碼。

儲存私鑰

點 “save private key”, 選擇一個存放路徑,定義一個名字,點 “儲存”。請儲存到一個比較安全的地方,謹防丢掉或被别人看到。

複制公鑰到linux

回到剛才生成密鑰的視窗,在 “key” 的下方有一段長長的字元串,這一串就是公鑰的内容了,把整個公鑰字元串複制下來。然後粘貼到你的linux的 <code>/root/.ssh/authorized_keys</code> 檔案裡。

[root@localhost ~]# mkdir /root/.ssh

[root@localhost ~]# chmod 700 /root/.ssh

首先建立/root/.ssh 目錄,因為這個目錄預設是不存在的,然後是更改權限。然後是把公鑰内容粘貼進 /root/.ssh/authorized_keys 檔案。

說明:記得關閉防火牆!

設定putty通過密鑰登陸

打開putty.exe點一下你儲存好的session,然後點右側的 “load”, 在左側靠下面點一下 “ssh” 前面的 +然後選擇 “auth”, 看右側 “private key file for authentication:” 下面的長條框裡目前為空,點一下 “browse”, 找到我們剛剛儲存好的私鑰,點”打開”。此時這個長條框裡就有了私鑰的位址,當然你也可以自行編輯這個路徑。然後再回到左側,點一下最上面的 “session”, 在右側再點一下 “save”.使用密鑰驗證登陸linux儲存好後session, 點一下右下方的 “open”. 出現登陸界面,你會發現和原來的登陸提示内容有所不同了。

[root@ceshiji ~]# ssh 192.169.5.74

last login: wed aug 16 15:14:25 2017 from 192-169-5-121-static.despegar.net

[root@eee ~]#

現在不再輸入root密碼,而是需要輸入密鑰的密碼,如果你先前在生産密鑰的時候沒有設定密碼, 你輸入root後會直接登陸系統。

方法二:使用腳本

腳本内容如下:     

[root@ceshiji kewai]# cat gen-sshkey.sh

#!/bin/bash

ssh-keygen  -t  rsa   -p ''   -f   '/root/.ssh/id_rsa'

說明:這個腳本是自動生成公鑰私鑰的,無須人工幹預按回車确認每個步驟!

如果将上面腳本生成的公鑰發送到另一台伺服器時,應将其重命名為authorized_keys ,指令如下:

###先遠端拷貝過去###

[root@ceshiji .ssh]# scp /root/.ssh/id_rsa.pub  [email protected]:/root/.ssh/

###再重命名###

[root@eee .ssh]# mv id_rsa.pub authorized_keys

這樣在ceshiji上遠端登入eee就可以輸入root之後,直接登入系統啦!

繼續閱讀