1. 程式人生 > >linux下禁止使用者使用密碼方式登陸,而使用金鑰方式登陸

linux下禁止使用者使用密碼方式登陸,而使用金鑰方式登陸

使用putty生成金鑰和登陸
根據公鑰認證的原理(見後面說明),認證雙方任何一方都可製作該鑰匙對,並且只要認證方有被認證方的公鑰資訊,即可匹配成功。
這裡,我們先以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