Linux操作系統設置SSH及SFTP通過密鑰登錄


 

如果你使用過Linux操作系統的VPS或其他服務器,可能在登錄時經常會提示你有多少次登錄失敗的記錄。

這種登錄失敗的記錄實際上也就是攻擊者使用腳本自動掃描全網的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

Linux操作系統設置SSH及SFTP通過密鑰登錄

注意:如果你本身並不是使用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文件,選中后點擊確定即可(密碼即密鑰密碼)

Linux操作系統設置SSH及SFTP通過密鑰登錄

Linux操作系統設置SSH及SFTP通過密鑰登錄

更改后SFTP連接也同樣需要使用密鑰進行登錄,以FileZilla為例:

點擊文件—管理—選擇站點—常規—登錄類型—密鑰文件—瀏覽—然后選擇私鑰文件,FileZilla會提示你轉成Putty的PPK格式你按提示操作即可。

7、在SSH和SFTP測試都可以使用密鑰登錄后我們再次編輯SSH配置文件(就剛剛下載的sshd_config):

PasswordAuthentication前面的#刪除並將后面的Yes改成No即可禁止使用密碼來登錄SSH和SFTP。

Linux操作系統設置SSH及SFTP通過密鑰登錄

修改后把文件保存好再次上傳至服務器然后重啟SSH服務器就大功告成啦!注意不要丟失私鑰和密碼哦。

[root@landian .ssh]# service sshd restart      <== 再次重啟SSH服務
Redirecting to /bin/systemctl restart  sshd.service
[root@landian .ssh]# 


免責聲明!

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



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