ssh登錄服務器的方式有三種:密碼登錄,公鑰登錄,證書登錄。同時,密碼登錄有被破解的風險,網絡上也有很多在掃描ssh端口的主機。
比如:
這里175.178.62.36
是一個來自廣東的服務器,17次嘗試密碼登錄我的服務器,好在都失敗了。
針對這種行為我們可以使用公鑰登錄的方式保護服務器。
密碼登錄
這是最基本的一種登錄方式,當我們使用 ssh 用戶名@ip
時,命令會引導我們正確輸入密碼並且登錄服務器。
輸入密碼之后就能登錄到linux服務器了。
但是這種方式存在被暴力破解的風險
公鑰登錄
這是比較安全的一種登錄方式,就是在自己的電腦上生成秘鑰,然后將公鑰的內容復制到服務器的authorized_keys
里,就可以不用再輸入密碼登錄了。具體實現步驟如下:
1.本地windows操作
- Windows 打開 cmd
- 輸入:ssh-keygen.exe
- 連續回車就 OK
- 完成后會在用戶目錄下的.ssh目錄下生成公鑰和私鑰
2.遠程服務器操作
- 在Linux 打開終端
- 輸入 ssh-keygen 回車(生成虛擬機的公私鑰)
- 完成后會在用戶目錄下生成 .ssh 目錄(輸入 ls -a 查看)
- 進入ssh目錄
cd .ssh
vim authorized_keys
- 將 Windows 電腦 id_rsa.pub里的文本,拷貝到虛擬機 authorized_keys 里
3.免密登錄
- windwos 打開 cmd
- 輸入:ssh user_name@ip
- 如果windows用戶名與你要登錄 linux 的用戶名相同,直接 ssh ip 即可`
關閉密碼登錄(可選)
此時我們需要在服務器關閉密碼登錄的方式
-
輸入
vim /etc/ssh/sshd_config
-
在文件中找到如下兩個變量,修改成如下的值
#禁用密碼驗證 PasswordAuthentication no #啟用密鑰驗證 PubkeyAuthentication yes
-
重啟sshd使修改生效。
service sshd restart
證書登錄
它引入了一個證書頒發機構(Certificate1 authority,簡稱 CA),對信任的服務器頒發服務器證書,對信任的用戶頒發用戶證書。
登錄時,用戶和服務器不需要提前知道彼此的公鑰,只需要交換各自的證書,驗證是否可信即可。
證書登錄的主要優點有兩個:(1)用戶和服務器不用交換公鑰,這更容易管理,也具有更好的可擴展性。(2)證書可以設置到期時間,而公鑰沒有到期時間。針對不同的情況,可以設置有效期很短的證書,進一步提高安全性。
后續如果使用到會補充此方式的相關細節。