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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示