當采用Linux伺服器作為運作環境時,我們經常需要通過SSH登入伺服器進行重新開機服務、修改配置檔案等操作。那麼使用SSH登陸伺服器,就足夠安全了嗎?
建立SSH密鑰并通過密鑰的形式來登入系統既友善、又更加安全。除非洩露了SSH密鑰檔案,黑客是無法攻破你的伺服器。就算不采用SSH密鑰登陸,最起碼應該修改SSH的預設端口22。
修改方法:SSH登陸伺服器時的預設端口為22,修改預設端口可以提高安全性
建立SSH密鑰和公鑰
1.執行 ssh-keygen -t rsa指令,建立密鑰和公鑰.
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #
"Enter"鍵,預設即可。
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): # "Enter"鍵,預設即可。
Enter same passphrase again: # "Enter"鍵,預設即可。
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:
db:52:c2:15:94:68:70:71:04:1f:39:04:94:fe:32:c2
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
| .o*XBo |
| .+o+o |
| o o. |
| ... |
| . S.. |
| E o=. |
| .oo. |
| . |
| |
+-----------------+
2.将公鑰追加到已認證檔案中.
# cd /root/.ssh/
# cat id_rsa.pub >> authorized_keys
# ls
authorized_keys id_rsa id_rsa.pub
注:隻有将建立的公鑰追加到已被認證authorized_keys檔案中,公鑰才是有效的。
3.利用FTP等工具,将id_rsa密鑰檔案,下載下傳儲存至本地。
修改ssh配置檔案
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
# vim /etc/ssh/sshd_config
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
修改如下:
RSAAuthentication yes # 允許使用RSA公鑰認證
PubkeyAuthentication yes # 允許公鑰認證
AuthorizedKeysFile .ssh/authorized_keys # 存放該使用者用來登入的RSA公鑰路徑
注:為了更加安全,也可以禁用“密碼登入”,而隻使用密鑰登入。
添加如下:
PasswordAuthentication no # 不允許使用密碼登入
4.重新開機SSH服務。
# service sshd restart
登入測試
1.如下圖,輸入使用者名,選擇存放在本地id_rsa密鑰檔案,點選登入。
2.可以确認,成功登入。
如果用PuTTY登入的話,還需要用PuTTYgen将id_rsa密鑰檔案轉換為*.ppk格式
1.打開PuTTYgen,點選「Load」,導入儲存在本地的id_rsa密鑰檔案。
2.點選「OK」即可。
3.可以輸入密鑰的密碼,本文省略。點選「Save private key」,儲存密鑰。
4.将密鑰檔案儲存為*.ppk格式。
5.打開PuTTY軟體,輸入IP位址。
6.點選「Data」,輸入登入使用者名。