git生成并使用多个密钥

git中对于不同的git远程服务可以配置使用不同的密钥。

密钥生成

首先根据不同的git托管服务创建不同的密钥

ssh-keygen -t rsa -C “user@qq.com”//生成密钥

生成密钥过程中会提示输入密钥名称和密码(密码用于使用私钥时进行确认,可不填),如生成公司gitlab密钥以及个人使用的github密钥。
id_rsa_github,id_rsa_github.pub;
id_rsa_gitlab,id_rsa_gitlab.pub;
然后将密钥添加到本地电脑,

ssh-add ~/.ssh/id_rsa_github//添加密钥到本地电脑

密钥配置

并把公钥配置到对应仓库账号,如下github配置ssh公钥

远程仓库配置好后,配置不同远程仓库使用不同密钥来进行登录;编辑.ssh目录中的config文件(若没有则创建),添加如下配置

Host github 
HostName github.com
User private_user
IdentityFile ~/.ssh/id_rsa_github

Host gitlab
HostName gitlab.work.com
User work_user
IdentityFile ~/.ssh/id_rsa_gitlab

Host 识别的表示,对识别的模式,进行配置对应的的主机名和ssh文件
HostName 登录主机的主机名,如:github.com、gitlab.com,
User 登录名
PreferredAuthentications 优先验证方式 publickey,password,keyboard-interactive
IdentityFile 对应的私钥文件

配置完成后可以通过ssh -T 命令检查配置的host是否成功,出现以下提示说明配置成功。

ssh -T git@github.com
Hi user! You've successfully authenticated, but GitHub does not provide shell access.

Debian配置密钥过程中遇到的问题

  • Could not open a connection to your authentication agent.
//检查ssh-agent是否运行
ps aux | grep ssh-agent
//手动启动SSH代理
eval $(ssh-agent)
  • Permissions 0644 for '/root/.ssh/id_rsa_github_217' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.
    提示显示密钥的权限太高了,应该改成只有对应用户有读写权限。
chmod 600 ~/.ssh/id_rsa

参考内容

Git 多用户配置 - 苍青浪 - 博客园
Git配置多账号

posted @   岛dao  阅读(145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示