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 @ 2024-11-26 21:24  岛dao  阅读(331)  评论(0)    收藏  举报