一、生成 SSH 密钥
1. 生成密钥
将 your_email@example.com 替换为你的邮箱
1 | ssh-keygen -t rsa -b 4096 -C "[email protected]" |
2. 设置密钥位置
默认会提示下方内容,回车会生成到默认目录,强烈建议自定义名称,避免后续生成给覆盖掉
建议改成例如 /Users/YOU/.ssh/id_rsa_{任意服务器标识}_your_email 位置
1 | > Enter a file in which to save the key (/Users/YOU/.ssh/id_rsa): [Press enter] |
3. 设置密钥密码
根据安全程度自行选择是否设置密钥密码,若不设置可直接按两下回车
4. 确认密钥
执行命令查看密钥文件,应该能看到你的密钥文件和公钥
1 | ls ~/.ssh |
5. 设置密钥配置
编辑该文件
1 | nano ~/.ssh/config |
修改 Host 为你连接的主机host、ip等等,并设置 IdentityFile 指向你的密钥文件
1 |
|
二、添加 SSH 密钥到服务器
1. 复制公钥
输入命令查看公钥内容并复制
1 | cat ~/.ssh/id_rsa_debian_your_email.pub |
2. 登录目标服务器
1 | # 编辑该文件,把公钥粘贴到末尾 |
3. 验证是否配置成功
输入命令,若不需要输入服务器密码,则说明成功(注意,若你密钥设置了密码,则需要输入密钥密码)
1 | ssh root@debian |
三、添加密钥到 ssh-agent
若你的密钥设置了密码,每次都要输入密码,可添加到 ssh-agent 缓存起来,不需要频繁输入
1 | # 后台启动 ssh-agent |
四、常见问题
1. authorized_keys 文件权限
若配置了,但还是需要输入密码,可排查一下是否服务器的权限有问题
1 | chmod 700 ~/.ssh |
