SSH 密钥概述
SSH 密钥基于公钥加密,用于安全认证:
- 公钥(Public Key):存放在远程服务器上,可公开
- 私钥(Private Key):保存在本地,必须保密
工作原理:
- 客户端生成一对 SSH 密钥(公钥和私钥),并将公钥部署到服务器上。
- 客户端发起连接请求,服务器接收请求。
- 服务器生成一个随机字符串,并使用存储在服务器上的客户端公钥进行加密,然后发送给客户端。
- 客户端使用自己的私钥解密该字符串,并将解密结果返回给服务器。
- 服务器验证客户端返回的字符串与自己生成的是否一致,若一致,则认证成功,允许访问。
生成 SSH 密钥
在本地生成 SSH 密钥(以 Linux / Git Bash / WSL 为例):
|
|
-t ed25519:推荐现代加密算法,速度快且安全-C:添加注释便于识别- 系统会提示输入 passphrase,回车可跳过
生成文件:
- 私钥:
~/.ssh/id_ed25519 - 公钥:
~/.ssh/id_ed25519.pub
Windows Git Bash路径:C:\Users\user\.ssh\id_ed25519
配置远程服务器
将公钥添加到远程服务器:
|
|
测试 SSH 连接:
|
|
- 如果正确配置,不需要输入服务器密码
- 如果私钥设置了 passphrase,需要输入一次解锁
使用 SSH Agent 缓存密钥
SSH Agent 是一个后台进程,它负责管理和缓存你的私钥。启动 SSH Agent 后,你只需一次性输入私钥的密码(Passphrase),然后 SSH Agent 会将解密后的密钥存储在内存中。当你使用 SSH 登录时,SSH 客户端会通过 SSH Agent 自动完成身份验证,无需每次都输入密码。
Linux
|
|
Windows
|
|