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

Linux SSH登陸有兩種:html

一、使用密碼驗證登陸linux

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

二、使用密鑰驗證登陸
安全

基於密鑰的安全驗證必須爲用戶本身建立一對密鑰,並把共有的密鑰放在須要訪問的服務器上。當須要鏈接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求以後,先在該用戶的根目錄下尋找共有密鑰,而後把它和發送過來的公有密鑰進行比較。若是兩個密鑰一致,服務器就用公有的密鑰加密「質詢」,並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢以後,就能夠用本地的私人密鑰解密再把它發送給服務器,這種方式是至關安全的。服務器

 

1、生成密鑰

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

一、在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 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、將密鑰添加到遠程Linux服務器

一、用winscp,將/root/.ssh/下面(若是沒有則建立此目錄)下載到本地備用,在服務器上.ssh/目錄下,cat id_rsa.pub >> authorized_keys,再執行:chmod 600 /root/.ssh/authorized_keys 修改權限。dom

二、修改/etc/ssh/sshd_config 文件,將RSAAuthentication 和 PubkeyAuthentication 後面的值都改爲yes ,保存。若是這兩項前面有 # 符號說明是註釋掉的,須要去掉 # 符號。ssh

三、重啓sshd服務,Debian/Ubuntu執行/etc/init.d/ssh restartide

CentOS執行:/etc/init.d/sshd restart 若是不存在能夠執行:service sshd restart。 不行的話使用 /bin/systemctl restart sshd.service測試

3、客戶端測試使用密鑰登陸

XShell登陸

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

打開建立好的Session

若是設置沒問題就會登陸成功,出現用戶提示符。

 

 

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

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

將PasswordAuthentication yes 修改爲 PasswordAuthentication no

二、重啓sshd服務

Debian/Ubuntu執行/etc/init.d/ssh restart ;CentOS執行:/bin/systemctl restart sshd.service

ok,設置完成。

相關文章
相關標籤/搜索