Centos設置SSH密鑰登陸,解決雲服務器被嘗試登陸的問題


最近弄了個雲主機,每次上都有如下提示(各種被掃描和攻擊…)

 

Last failed login: Tue Dec 12 07:55:36 CST 2017 from 219.146.144.254 on ssh:notty

There were 14011 failed login attempts since the last successful login.

Last login: Mon Dec 11 09:23:25 2017 from 180.110.80.73

 

研究后發現配置ssh密鑰登陸並關閉密碼登陸可以解決這個問題.

以下內容為在Centos7下操作.

 

ssh登陸原理簡單說明:

公鑰相當於鎖,私鑰相當於鑰匙。

生成公鑰和私鑰,並把公鑰上傳到服務器。以后在客戶端登陸時,就可以使用私鑰來進行驗證。不再需要用戶名和密碼登陸 ,大大提高了服務器安全性。

  1. 生成ssh密鑰

首先確保服務器已經裝了ssh服務,不過現在linux服務器都自帶吧。

ssh-keygen -t rsa #這里使用rsa算法,-t用於指定加密算法

   

   

查看生成的密鑰.id_rsa是私鑰,id_rsa.pub是公鑰

ll /root/.ssh/

   

  1. 把公鑰存到默認ssh密鑰位置. 當前用戶/.ssh/authorized_keys

    mkdir .ssh #如果沒有.ssh目錄,則需要創建

    cat id_rsa.pub >> /root/.ssh/authorized_keys #將公鑰追加到keys文件中,注意是追加.因為keys文件中可能記錄了多個公鑰.

       

    chmod 600 ./authorized_keys #將權限改為只有當前用戶可讀可寫,保證安全.

       

  2. 打開ssh服務器的密鑰登陸功能

       

    修改SSH的配置文件/etc/ssh/sshd_config :

    #RSAAuthentication yes

    #PubkeyAuthentication yes

    #AuthorizedKeysFile .ssh/authorized_keys

    去調上面3行前面的#,保存后重啟SSH服務。

    systemctl restart sshd.service #centos7

       

  3. 下載公鑰和私鑰到客戶機

    必須兩個文件都下,且要放到一個目錄下.(有些ssh工具只要私鑰就行)

    我這使用windows scp(ftp軟件)將密鑰文件下載到本機.

       

  4. 使用windows下的ssh客戶端配置密鑰連接服務器(所有工具都大同小異,我用的是免費的xshell)

    新建一個會話,並選擇public-key的方式連接

       

    瀏覽選擇剛下載的私鑰文件.確定.

       

    登陸成功!

       

       

       

  5. 關閉密碼登錄

    修改SSH的配置文件/etc/ssh/sshd_config,找到下面1行:

    PasswordAuthentication yes

    修改為:

    PasswordAuthentication no

    保存后重啟SSH服務。

    systemctl restart sshd.service #centos7

       

    再也不用看到登陸嘗試失敗的提示了, 完結!

       

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM