前言
當SSH啓用密鑰對之後就會禁止密碼連接,這種情況下安全性會大大加強。
而像阿里雲這種雲服務供應商則把這個流程變得非常簡單。
在買服務器的時候就可以自動配置,我們要做的就是知道怎麼連接它。
創建實例的注意事項
在ECS購買頁面,選擇Linux或Freebsd之後,下面就可以選擇密鑰對連接:
此時如果沒有密鑰對就創建一個:
點擊確認後,會下載私鑰文件,並且密鑰對列表多了一條數據:
這裏需要注意:私鑰只能下載一次,請妥善保存,不能泄露也不能遺失。
回到購買頁面就有密鑰對可選了:
創建完成後,這台ECS就只允許私鑰連接了,如果用密碼是連不上的。
連接
通過阿里雲自帶的Workbench
在阿里雲的ECS管理窗口點擊遠程連接選擇第一個即可:
首次連接時,上傳剛剛下載的私鑰,即可連接成功:
通過終端的SSH
大多數情況下,我們會嫌麻煩,不想先登阿里雲,然後上傳私鑰...(懶催生了效率)
對於直接用終端的情況,用私鑰和用公鑰不太一樣,公鑰是直接把文件扔在~/.ssh,然後像往常那樣直接連就可以了。在Github/Gitlab拉代碼的時候就用到了類似功能:
https://segmentfault.com/a/1190000041713720
而阿里雲這個.pem格式的文件,官方文檔上給出了用法:
ssh -i ~/ecs.pem ecs-user@10.10.xx.xxx
命令很簡單,但連接時可能會出現WARNING: UNPROTECTED PRIVATE KEY FILE!:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0666 for '/home/testuser/ssh.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/testuser/ssh.pem": bad permissions
user@123.123.123.123: Permission denied (publickey).
翻譯一下就是:出於安全考慮,你的私鑰有多餘的權限
(Linux權限分為讀、寫、執行,並且對於自己、同組的人、其他人可以分別設置權限)
出現上述提示時,説明除了自己以外,同組人和其他人也對這個文件有權限,這樣可能導致私鑰泄露
所以,要把密鑰的權限改為400(僅自己有讀權限)
chmod 400 ~/ssh.pem
然後就成功了。
第三方客户端
Linux有個開源的遠程客户端Remmina,支持RDP、SSH、SPICE、VNC、X2Go、HTTP/HTTPS。
安裝也比較簡單,以Ubuntu為例:
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
sudo apt update
sudo apt install remmina remmina-plugin-rdp remmina-plugin-secret
然後新建一個連接:
- 類型選SSH
- 輸入IP:端口
- 輸入用户名,不填密碼
- 認證類型選私鑰
- 勾選下面的私鑰
- 其他不填
保存即可,以後就可以雙擊連接了。不用輸密碼也不用上傳密鑰。
總結
懶催生效率。
本文只發布segmentfault,禁止轉載,如在其他平台看到請舉報。