隨著PHP越來(lái)越流行,Linux VPS/服務(wù)器的使用也越來(lái)越多,Linux的安全問題也需要日漸加強(qiáng),如果你安裝過DenyHosts并設(shè)置過郵件提醒,你每天可能會(huì)受到數(shù)封DenyHosts Report將前來(lái)破解SSH密碼的IP加入/etc/hosts.deny。
Linux SSH登錄有兩種:
1、使用密碼驗(yàn)證登錄
通常VPS或服務(wù)器開通后都是直接提供IP和root密碼,使用這種方式就是通過密碼方式登錄。如果密碼不夠強(qiáng)壯,而且沒有安裝DenyHosts之類的防止SSH密碼破解的軟件,那么系統(tǒng)安全將存在很大的隱患。
2、使用密鑰驗(yàn)證登錄
基于密鑰的安全驗(yàn)證必須為用戶自己創(chuàng)建一對(duì)密鑰,并把共有的密鑰放在需要訪問的服務(wù)器上。當(dāng)需要連接到SSH服務(wù)器上時(shí),客戶端軟件就會(huì)向服務(wù)器發(fā)出請(qǐng)求,請(qǐng)求使用客戶端的密鑰進(jìn)行安全驗(yàn)證。服務(wù)器收到請(qǐng)求之后,先在該用戶的根目錄下尋找共有密鑰,然后把它和發(fā)送過來(lái)的公有密鑰進(jìn)行比較。如果兩個(gè)密鑰一致,服務(wù)器就用公有的密鑰加密“質(zhì)詢”,并把它發(fā)送給客戶端軟件(putty,xshell等)??蛻舳耸盏劫|(zhì)詢之后,就可以用本地的私人密鑰解密再把它發(fā)送給服務(wù)器,這種方式是相當(dāng)安全的。
一、生成密鑰
因?yàn)閜uttygen生成的密鑰有問題可能會(huì)出現(xiàn):“Server refused our key”,最好使用XShell生成密鑰或者在遠(yuǎn)程Linux VPS/服務(wù)器生成密鑰。
1、在Linux遠(yuǎn)程服務(wù)器生成密鑰:
登錄遠(yuǎn)程Linux VPS/服務(wù)器,執(zhí)行:
root@vpser:~# ssh-keygen -t rsa //先運(yùn)行這個(gè)命令
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: //重復(fù)密鑰密碼
Your identification has been saved in /root/.ssh/id_rsa. //提示公鑰和私鑰已經(jīng)存放在/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 root@vpser.net
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下面功能強(qiáng)大的SSH客戶端,能夠按分類保存N多會(huì)話、支持Tab、支持多密鑰管理等等,管理比較多的VPS/服務(wù)器使用XShell算是比較方便的,推薦使用。
下載XShell,安裝,運(yùn)行XShell,點(diǎn)擊菜單:Tool ->User Key Generation Wizard,出現(xiàn)如下提示:
點(diǎn)擊Save as file將密鑰保存為id_rsa.pub。
二、將密鑰添加到遠(yuǎn)程Linux服務(wù)器
1、用winscp,將id_rsa.pub文件上傳到/root/.ssh/下面(如果沒有則創(chuàng)建此目錄),并重命名為:authorized_keys(如果是在Linux服務(wù)器上生成的密鑰直接執(zhí)行:mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys),再執(zhí)行:chmod 600 /root/.ssh/authorized_keys 修改權(quán)限。
2、修改/etc/ssh/sshd_config 文件,將RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。
3、重啟sshd服務(wù),Debian/Ubuntu執(zhí)行/etc/init.d/ssh restart ;CentOS執(zhí)行:/etc/init.d/sshd restart。
三、客戶端測(cè)試使用密鑰登錄
1、使用putty登錄
putty使用的私鑰文件和Linux服務(wù)器或XShell的私鑰格式不同,如果使用putty的話,需要將Linux主機(jī)上生成的id_rsa文件下載的本地。運(yùn)行putty壓縮包里面的puttygen.exe,選擇Conversions->Import key選擇私鑰文件id_rsa,輸入密鑰文件的密碼,會(huì)出現(xiàn)如下界面:
點(diǎn)擊“Save Private Key”,將私鑰保存為id_rsa.ppk
運(yùn)行putty,在Host Name填寫:root@主機(jī)名或ip
如果設(shè)置了密鑰密碼,出現(xiàn):Passphrase for key “imported-openssh-key”時(shí)輸入密鑰密碼。
如果設(shè)置沒問題就會(huì)登錄成功,出現(xiàn)用戶提示符。
2、XShell登錄