ssh如何管理多个私钥进行多端免密登录

内容分享2周前发布
0 0 0

日常使用 ssh 进行免密登录的时候,常常会遇到这样的问题。列如 ~/.ssh/ 目录下已经存在一个 id_rsa 私钥在进行其他业务的免密登录,目前如果需要再配一个 github 的免密登录,怎么办呢?私钥的名字又要固定为 id_rsa,总不可能在两个私钥间来回改名字吧

使用配置文件进行多个私钥的管理

我们可以在 ~/.ssh 目录下创建一个 config 文件,文件内容大致如下

Host github.com
IdentityFile ~/.ssh/id_rsa.github
User lionsu

每一项的作用留到后面再讲,先把 ssh 的密钥配完

使用命令 ssh-keygen 生成密钥对

//指定生成密钥的文件名 免得覆盖现有的 id_rsa 文件
//这条命令也可以用于 Windows
$ssh-keygen -t rsa -f ~/.ssh/id_rsa.github

执行完毕会在 ~/.ssh/ 目录下生成 id_rsa.github 和 id_rsa.github.pub 两个文件,id_rsa.github 是私钥,需要放在本地,id_rsa.github.pub 是公钥,需要配置到 github 的用户设置页面上

打开github配置页面

登录github之后,访问 https://github.com/settings/keys 进入设置页,SSH and GPG keys这一栏是配置公钥的地方

ssh如何管理多个私钥进行多端免密登录

Title 先写一个方便记忆标识的名字(列如homePC)
然后用文本编辑器(记事本就可以)打开 id_rsa.github.pub,把内容全部复制到 key 这一栏,必定要带上文本开头的 ssh-rsa, 否则 github 页面会提示公钥不合法,最后面的用户名可以带上也可以去掉

回到开头的config文件

Host github.com
IdentityFile ~/.ssh/id_rsa.github
User lionsu

  • Host 是需要免密登录的域名,如果是服务器的话,便是ip地址(这一点没有测试过),不过这里由于是github网站,所以这里Host必定要填 github.com,个人猜测应该是跟 .git/config 这个配置文件里面的git url相关
  • IdentityFile 本地私钥的路径,必定要准确
  • User 如果有多个 github 帐户需要免密登录,则用这一项进行标识(不必定要跟github站点上的用户名一致,有关联性方便标识就行)
如果这时git push推送还是弹出密码框,就找到 github 项目目录下的 .git/config 文件,打开看一看 remote url 是不是 https 协议,如果是,改成 ssh 协议就好(github项目https地址和ssh地址是放在一起的)
© 版权声明

相关文章

暂无评论

none
暂无评论...