引言
密钥简单概念:
首先要生成一对独一无二的“钥匙对”:一把私钥(自己保管,绝不外泄)和一把公钥(可以公开,相当于锁芯)。
当把“锁芯”(公钥)安装到服务器的门上之后,每次开门时,只需带上自己的“私钥”(通过 -i 参数指定),服务器验证匹配后,门就自动开了,全程无需密码。相当于将自己的钥匙插入服务器上的锁芯即可。
此处为快速理解,底层操作非锁和钥匙这般操作,详细可以自行了解。
密钥核心优势:
- 抗暴力破解:总所周知,密码是可以被暴力破解的。
- 自动化友好:写一些自动化脚本,让其自己拿着密钥登录服务器完成一些操作。(机器人)
- 精准权限控制:限制服务器下某个用户只能执行某些命令,例如一个只能定时执行备份操作的用户。(机器人)
密钥核心缺陷:
- 私钥泄露风险:如果没有搭配密钥生命周期管理,丝毫不亚于将整栋大楼送给了黑客。
- 密钥生命周期管理:如果某公司员工离职,却还持有永不失效的公司通行证,是相当不安全的。
- 中间人攻击风险:有人穿制服冒充工作人员(中间人),把你引导到伪装的”银行网点”,你把密码和账号都交给了骗子。
对于这些缺陷,在宏观上,可以采取「为每个用户分配独立的密钥对」做到基本的风险隔离。
在颗粒度上,可以采用「加密私钥 + 硬件密钥」、「自动轮换密钥」、「预置指纹+严格模式」或者「主机证书体系」。(SSH 通过 known_hosts 文件记录服务器指纹,首次连接时提示确认指纹,StrictHostKeyChecking yes 模式下会拒绝连接未知指纹的服务器)
若非中大型企业,这些就够了,不用过分追求这方面的防护。
创建密钥并导入服务器
- 登录 阿里云控制台
- 进入 云服务器 ECS → 选择目标实例 → 安全组 → 配置规则确保 22 端口开放
- 左侧导航栏 网络与安全 → 密钥对 → 创建密钥对
- 输入自定义密钥对名称(如
my-keypair) - 自动创建密钥对 选定好对应资源组
- 点击 确定(此时会自动下载私钥,务必妥善保管)
- 绑定私钥,将其注入服务器中管理公钥的
文件authorized_keys
- 输入自定义密钥对名称(如
![图片[1]-ssh 配置密钥登录(控制台操作篇) - 渔网札记-渔网札记](https://blog.image.lilwhale.cn/wp-content/uploads/2025/07/20250701030838861-1024x577.png)
![图片[2]-ssh 配置密钥登录(控制台操作篇) - 渔网札记-渔网札记](https://blog.image.lilwhale.cn/wp-content/uploads/2025/07/20250701031211537-1024x578.png)
最后将密钥对绑定到服务器上:
![图片[3]-ssh 配置密钥登录(控制台操作篇) - 渔网札记-渔网札记](https://blog.image.lilwhale.cn/wp-content/uploads/2025/07/20250701031610184-1024x517.png)
![图片[4]-ssh 配置密钥登录(控制台操作篇) - 渔网札记-渔网札记](https://blog.image.lilwhale.cn/wp-content/uploads/2025/07/20250701031710577-1024x518.png)
重启服务器:
![图片[5]-ssh 配置密钥登录(控制台操作篇) - 渔网札记-渔网札记](https://blog.image.lilwhale.cn/wp-content/uploads/2025/07/20250701032434231.png)
重启完成后,阿里云会自动将公钥注入服务器根用户的此文件中 ~/.ssh/authorized_keys。
![图片[6]-ssh 配置密钥登录(控制台操作篇) - 渔网札记-渔网札记](https://blog.image.lilwhale.cn/wp-content/uploads/2025/07/20250710175745304.png)
使用密钥登录服务器
将刚才保存的私钥拷贝一份到本地 ~/.ssh/ 路径下,或者直接指定自定义保存密钥的路径。
打开连接 ssh 的工具(Mac 用户终端即可,Windows 可以使用 Xshell),使用如下命令进行登录。
ssh -i your_file_path root@your_server_ip
# ssh -i ~/.ssh/blog_lilwhale.pem root@your_server_ip # 我的文件路径
「-i 参数的全称是 identity_file,意思就是“指定使用哪个身份文件(也就是私钥)去尝试登录”。」
检查权限
![图片[7]-ssh 配置密钥登录(控制台操作篇) - 渔网札记-渔网札记](https://blog.image.lilwhale.cn/wp-content/uploads/2025/07/20250701034912730.png)
原因:这是因为你的 SSH 私钥文件权限过于开放,系统出于安全考虑拒绝使用它。你需要调整私钥文件的权限,确保只有所有者有读写权限。
解决方案:打开你的终端,更改这个文件的权限即可:
chmod 600 your_file_path
# chmod 600 ~/.ssh/blog_lilwhale.pem # 我的文件路径
现在如果直接使用 是会报错
最后配置好后,一定要检查服务器和本地上的私钥或公钥所在目录权限是否为 700,私钥或公钥文件是否为 600。
总结
谨记:私钥是在用户自己手上,公钥是在服务器上。
总的来说,直接到服务器控制台创建密钥对即可,后续的操作基本上是傻瓜式,需要下载到本地的就是私钥,注入到服务器的肯定就是公钥。用户通过私钥去登录服务器。
拓展
加密私钥
自动轮换密钥
预置指纹+严格模式


暂无评论内容