我們一般使用 PuTTY 等 SSH 客戶端來遠(yuǎn)程管理 Linux 服務(wù)器饱须。但是鹦赎,一般的密碼方式登錄将鸵,容易有密碼被暴力破解的問題。所以铆农,一般我們會(huì)將 SSH 的端口設(shè)置為默認(rèn)的 22 以外的端口牺氨,或者禁用 root 賬戶登錄。其實(shí)墩剖,有一個(gè)更好的辦法來保證安全猴凹,而且讓你可以放心地用 root 賬戶從遠(yuǎn)程登錄——那就是通過密鑰方式登錄。
密鑰形式登錄的原理是:利用密鑰生成器制作一對(duì)密鑰——一只公鑰和一只私鑰岭皂。將公鑰添加到服務(wù)器的某個(gè)賬戶上郊霎,然后在客戶端利用私鑰即可完成認(rèn)證并登錄。這樣一來爷绘,沒有私鑰书劝,任何人都無法通過 SSH 暴力破解你的密碼來遠(yuǎn)程登錄到系統(tǒng)。此外土至,如果將公鑰復(fù)制到其他賬戶甚至主機(jī)购对,利用私鑰也可以登錄。
下面來講解如何在 Linux 服務(wù)器上制作密鑰對(duì)陶因,將公鑰添加給賬戶骡苞,設(shè)置 SSH,最后通過客戶端登錄楷扬。
1. 制作密鑰對(duì)
首先在服務(wù)器上制作密鑰對(duì)解幽。首先用密碼登錄到你打算使用密鑰登錄的賬戶,然后執(zhí)行以下命令:
[root@host~]$ ssh-keygen<==建立密鑰對(duì)Generatingpublic/privatersa key pair.Enterfileinwhich to save the key(/root/.ssh/id_rsa):<==按EnterCreateddirectory'/root/.ssh'.Enterpassphrase(emptyfornopassphrase):<==輸入密鑰鎖碼毅否,或直接按Enter留空Entersame passphrase again:<==再輸入一遍密鑰鎖碼Youridentification has been savedin/root/.ssh/id_rsa.<==私鑰Yourpublickey has been savedin/root/.ssh/id_rsa.pub.<==公鑰Thekey fingerprintis:0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08root@host
密鑰鎖碼在使用私鑰時(shí)必須輸入亚铁,這樣就可以保護(hù)私鑰不被盜用。當(dāng)然螟加,也可以留空徘溢,實(shí)現(xiàn)無密碼登錄。
現(xiàn)在捆探,在 root 用戶的家目錄中生成了一個(gè) .ssh 的隱藏目錄然爆,內(nèi)含兩個(gè)密鑰文件。id_rsa 為私鑰黍图,id_rsa.pub 為公鑰曾雕。
2. 在服務(wù)器上安裝公鑰
鍵入以下命令,在服務(wù)器上安裝公鑰:
[root@host~]$ cd.ssh[root@host.ssh]$ cat id_rsa.pub>>authorized_keys
如此便完成了公鑰的安裝助被。為了確保連接成功剖张,請(qǐng)保證以下文件權(quán)限正確:
[root@host.ssh]$ chmod600authorized_keys[root@host.ssh]$ chmod700~/.ssh
3. 設(shè)置 SSH切诀,打開密鑰登錄功能
編輯 /etc/ssh/sshd_config 文件,進(jìn)行如下設(shè)置:
RSAAuthenticationyesPubkeyAuthenticationyes
另外搔弄,請(qǐng)留意 root 用戶能否通過 SSH 登錄:
PermitRootLoginyes
當(dāng)你完成全部設(shè)置幅虑,并以密鑰方式登錄成功后,再禁用密碼登錄:
PasswordAuthenticationno
最后顾犹,重啟 SSH 服務(wù):
[root@host.ssh]$ service sshd restart
4. 將私鑰下載到客戶端倒庵,然后轉(zhuǎn)換為 PuTTY 能使用的格式
使用 WinSCP、SFTP 等工具將私鑰文件 id_rsa 下載到客戶端機(jī)器上炫刷。然后打開 PuTTYGen擎宝,單擊 Actions 中的 Load 按鈕,載入你剛才下載到的私鑰文件浑玛。如果你剛才設(shè)置了密鑰鎖碼绍申,這時(shí)則需要輸入。
載入成功后锄奢,PuTTYGen 會(huì)顯示密鑰相關(guān)的信息失晴。在 Key comment 中鍵入對(duì)密鑰的說明信息,然后單擊 Save private key 按鈕即可將私鑰文件存放為 PuTTY 能使用的格式拘央。
今后涂屁,當(dāng)你使用 PuTTY 登錄時(shí),可以在左側(cè)的 Connection -> SSH -> Auth 中的 Private key file for authentication: 處選擇你的私鑰文件灰伟,然后即可登錄了拆又,過程中只需輸入密鑰鎖碼即可。