這種登錄失敗的記錄實際上也就是攻擊者使用腳本自動掃描全網的IP然后進行篩選和測試,最終腳本會使用內置的密碼組嘗試登錄開放22端口的Linux服務器。
當然如果登錄成功那么意味着你的服務器就是被黑了,除了搜尋服務器中有價值的內容外就是充當肉雞了。
為此我們可以關閉掉22端口使用密鑰來進行登錄,這樣子可以瞬間把服務器的安全性提高好幾個檔次呢。
以下是基本的操作流程:
1、登錄Linux服務器來生成公鑰和私鑰:
[root@landian ~]# ssh-keygen <== 生成密鑰對 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): <== 密鑰對默認路徑,直接Enter即可 Enter passphrase (empty for no passphrase): <== 輸入私鑰密碼,若直接按回車則不對私鑰加密 Enter same passphrase again: <== 再次輸入私鑰密碼 Your identification has been saved in /root/.ssh/id_rsa. <== 這是生成好的私鑰 Your public key has been saved in /root/.ssh/id_rsa.pub. <== 這是生成好的公鑰 The key fingerprint is: 2b:28:25:b6:62:2f:34:ee:f3:3:5e:76:68:37:d9:6e root@landian The key's randomart image is: +--[ RSA 2048]----+
2、進入剛剛生成密鑰對的默認路徑,然后將生成的公鑰安裝到操作系統上:
[root@landian ~]# cd /root/.ssh <== 進入密鑰對所在目錄 [root@landian .ssh]# cat id_rsa.pub >> authorized_keys <== 安裝公鑰文件至系統
3、鍵入以下命令對公鑰和目錄設置權限:
[root@landian .ssh]# chmod 600 authorized_keys <== 設置600權限 [root@landian .ssh]# chmod 700 ~/.ssh <== 將目錄設置700權限
4、通過FTP工具將SSH配置文件(/etc/ssh/sshd_config
)下載本地編輯(也可直接用vim
進行編輯):
請將以下三項內容前的#號刪除(#號為注釋符、即不生效),如果對應項后面默認的是No則改成Yes
注意:如果你本身並不是使用Root賬戶登錄的那么不要修改PermitRootLogin
選項包括前面的#號。
5、修改完成后將sshd_config
再上傳並覆蓋掉服務器上原有的文件,覆蓋成功后重啟SSH服務:
[root@landian .ssh]# service sshd restart <== 重啟SSH服務 Redirecting to /bin/systemctl restart sshd.service
6、將私鑰/root/.ssh/id_rsa
下載到本地進行測試,以XShell為例在管理中把驗證方法改成Key:
依次點擊用戶密鑰后的瀏覽、導入並選擇剛剛下載的id_rsa
文件,選中后點擊確定即可(密碼即密鑰密碼)
更改后SFTP連接也同樣需要使用密鑰進行登錄,以FileZilla為例:
點擊文件—管理—選擇站點—常規—登錄類型—密鑰文件—瀏覽—然后選擇私鑰文件,FileZilla會提示你轉成Putty的PPK格式你按提示操作即可。
7、在SSH和SFTP測試都可以使用密鑰登錄后我們再次編輯SSH配置文件(就剛剛下載的sshd_config
):
將PasswordAuthentication
前面的#刪除並將后面的Yes
改成No
即可禁止使用密碼來登錄SSH和SFTP。
修改后把文件保存好再次上傳至服務器然后重啟SSH服務器就大功告成啦!注意不要丟失私鑰和密碼哦。
[root@landian .ssh]# service sshd restart <== 再次重啟SSH服務 Redirecting to /bin/systemctl restart sshd.service [root@landian .ssh]#