萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> SSH密鑰登錄讓Linux VPS/服務器更安全

SSH密鑰登錄讓Linux VPS/服務器更安全

   隨著PHP越來越流行,Linux VPS/服務器的使用也越來越多,Linux的安全問題也需要日漸加強,如果你安裝過DenyHosts並設置過郵件提醒,你每天可能會受到數封DenyHosts Report將前來破解SSH密碼的IP加入/etc/hosts.deny。

  Linux SSH登錄有兩種:

  1、使用密碼驗證登錄

  通常VPS或服務器開通後都是直接提供IP和root密碼,使用這種方式就是通過密碼方式登錄。如果密碼不夠強壯,而且沒有安裝DenyHosts之類的防止SSH密碼破解的軟件,那麼系統安全將存在很大的隱患。

  2、使用密鑰驗證登錄

  基於密鑰的安全驗證必須為用戶自己創建一對密鑰,並把共有的密鑰放在需要訪問的服務器上。當需要連接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求之後,先在該用戶的根目錄下尋找共有密鑰,然後把它和發送過來的公有密鑰進行比較。如果兩個密鑰一致,服務器就用公有的密鑰加密“質詢”,並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢之後,就可以用本地的私人密鑰解密再把它發送給服務器,這種方式是相當安全的。

  一、生成密鑰

  因為puttygen生成的密鑰有問題可能會出現:“Server refused our key”,最好使用XShell生成密鑰或者在遠程Linux VPS/服務器生成密鑰。

  1、在Linux遠程服務器生成密鑰:

  登錄遠程Linux VPS/服務器,執行:

  root@vpser:~# ssh-keygen -t rsa //先運行這個命令

  Generating public/private rsa key pair.

  Enter file in which to save the key (/root/.ssh/id_rsa): //直接回車

  Created directory ‘/root/.ssh’.

  Enter passphrase (empty for no passphrase): //輸入密鑰密碼

  Enter same passphrase again: //重復密鑰密碼

  Your identification has been saved in /root/.ssh/id_rsa. //提示公鑰和私鑰已經存放在/root/.ssh/目錄下

  Your public key has been saved in /root/.ssh/id_rsa.pub.

  The key fingerprint is:

  15:23:a1:41:90:10:05:29:4c:d6:c0:11:61:13:23:dd [email protected]

  The key’s randomart image is:

  +–[ RSA 2048]—-+

  |=&@Bo+o o.o |

  |=o=.E o . o |

  | . . . |

  | . |

  | S |

  | |

  | |

  | |

  | |

  +—————–+

  root@vpser:~#

  將/root/.ssh/下面的id_rsa和id_rsd.pub妥善保存。

  2、使用XShell生成密鑰

  Xshell是一款Windows下面功能強大的SSH客戶端,能夠按分類保存N多會話、支持Tab、支持多密鑰管理等等,管理比較多的VPS/服務器使用XShell算是比較方便的,推薦使用。

  下載XShell,安裝,運行XShell,點擊菜單:Tool ->User Key Generation Wizard,出現如下提示:

SSH密鑰登錄讓Linux VPS/服務器更安全 三聯

  點擊Save as file將密鑰保存為id_rsa.pub。

  二、將密鑰添加到遠程Linux服務器

  1、用winscp,將id_rsa.pub文件上傳到/root/.ssh/下面(如果沒有則創建此目錄),並重命名為:authorized_keys(如果是在Linux服務器上生成的密鑰直接執行:mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys),再執行:chmod 600 /root/.ssh/authorized_keys 修改權限。

  2、修改/etc/ssh/sshd_config 文件,將RSAAuthentication 和 PubkeyAuthentication 後面的值都改成yes ,保存。

  3、重啟sshd服務,Debian/Ubuntu執行/etc/init.d/ssh restart ;CentOS執行:/etc/init.d/sshd restart。

  三、客戶端測試使用密鑰登錄

  1、使用putty登錄

  putty使用的私鑰文件和Linux服務器或XShell的私鑰格式不同,如果使用putty的話,需要將Linux主機上生成的id_rsa文件下載的本地。運行putty壓縮包裡面的puttygen.exe,選擇Conversions->Import key選擇私鑰文件id_rsa,輸入密鑰文件的密碼,會出現如下界面:

  點擊“Save Private Key”,將私鑰保存為id_rsa.ppk

  運行putty,在Host Name填寫:root@主機名或ip

  如果設置了密鑰密碼,出現:Passphrase for key “imported-openssh-key”時輸入密鑰密碼。

  如果設置沒問題就會登錄成功,出現用戶提示符。

  2、XShell登錄

  運行XShell,選擇菜單File->New,按如下提示填寫:

  打開創建好的Session

  如果設置沒問題就會登錄成功,出現用戶提示符。

  3、Linux客戶端登錄測試

  在Linux客戶端執行:chmod 600 /root/id_rsa 再執行:ssh [email protected] -i /root/id_rsa /root/id_rsa為私鑰文件,第一次鏈接可能會提示確認,輸入yes即可,再按提示輸入密鑰密碼,沒有問題就會出現用戶提示符。

  四、修改遠程Linux服務器sshd服務配置

  1、修改/etc/ssh/sshd_config 文件

  將PasswordAuthentication yes 修改成 PasswordAuthentication no

  2、重啟sshd服務

  Debian/Ubuntu執行/etc/init.d/ssh restart ;CentOS執行:/etc/init.d/sshd restart。

  ok,設置完成。

  再提醒一下一定要保存好Putty私鑰文件id_rsa.ppk或Linux服務器下載下來的id_rsa私鑰文件

copyright © 萬盛學電腦網 all rights reserved