根據公鑰認證的原理(見後面說明),認證雙方任何一方都可製作該鑰匙對,並且只要認證方有被認證方的公鑰信息,即可匹配成功。
這裏,我們先以Windows上的putty登陸Linux服務器爲例說明。所以,該密鑰對由putty製作。
繼續前,請確保您已經把整個putty包都下載完:
其中包括:PuTTY、Puttygen、PSCP、Plink、Pagent 等工具。
1、使用puttygen製作密鑰
啓動puttygen工具,爲兼容OpenSSH密鑰,選擇“SSH2 RSA”:
單擊 生成 按鈕,並使用鼠標在 空白區域內移動,以獲得足夠的隨機數據供生成密鑰使用:
※期間,那我們要移動鼠標,直到進度條走滿爲止。
完成後的窗口如下:
其中:
密鑰註釋:不會影響密鑰的有效性,但可作爲自己用於區別其他密鑰的參考;
兩次輸入密鑰密碼
隨後,點擊 保存私鑰 。
如果沒有輸入密鑰密碼,會有警告:
輸入私鑰的文件名:
※公鑰信息可以不用保留在本地的,puttygen可以從私鑰得到它,驗證時也不會用到。
2、拷貝公鑰信息
公鑰信息:
需要把該信息拷貝到Linux服務器的特定文件中:~/.ssh/authroized_keys
其中,“~”表示對應用戶的主目錄,以root爲例。
若.ssh目錄不存在,請創建它,並把公鑰信息寫入文件中:
# mkdir ~/.ssh
# chmod 700 ~/.ssh
# vi ~/.ssh/authorized_keys
# chmod 644 ~/.ssh/authorized_keys
※請務必留意:文件和目錄的權限問題,用戶必須是將要進行認證的用戶,而權限必須是0644,也就是禁止其他人對該文件寫入信息。(否則,某些有心人把自己的公鑰寫入這裏,他也可以無密碼進來了)
因爲,通常umask是0022或0002的,所以請使用chown和chmod修改爲對應的權限咯。
4、使用putty使用密鑰登陸
對putty進行一些簡單配置,即可使用密鑰登陸Linux服務器。
選擇SSH—認證,選擇剛保存的私鑰文件
然後點擊打開即可
基於密鑰認證的配置
# vi /etc/ssh/sshd_config
PasswordAuthentication no //禁止使用基於口令認證的方式登陸
PubkeyAuthentication yes //允許使用基於密鑰認證的方式登陸
# /etc/init.d/sshd reload