Git 配置SSH,多个 Github 账号配置不同的SSH KEY(二)

简介: Git 配置SSH,多个 Github 账号配置不同的SSH KEY

另一个例子


#
# Main gitlab.com server
#
Host gitlab.com
RSAAuthentication yes
IdentityFile ~/my-ssh-key-directory/my-gitlab-private-key-filename
User mygitlabusername


另一个例子


#
# Our company's internal GitLab server
#
Host my-gitlab.company.com
RSAAuthentication yes
IdentityFile ~/my-ssh-key-directory/company-com-private-key-filename


另一个例子


# GitLab.com
Host gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab_com_rsa
# Private GitLab instance
Host gitlab.company.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/example_com_rsa


另一个例子


# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa


首先,检查您的~/.ssh/config文件是否存在于默认位置。


$ open ~/.ssh/config
> The file /Users/you/.ssh/config does not exist.


  • 将您的SSH私钥添加到ssh代理中,并将密码存储在钥匙串中。如果您使用其他名称创建了密钥,或者如果您正在添加具有不同名称的现有密钥,请将命令中的id_rsa_github替换为私钥文件的名称。
$ ssh-add ~/.ssh/id_rsa_github


即ssh-add <directory to private SSH key>

如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以现执行命令:


$ ssh-agent bash


然后再运行ssh-add命令。


  • 查看添加结果
ssh-add -l


补充:


# 可以通过 ssh-add -l 来确私钥列表
$ ssh-add -l
# 可以通过 ssh-add -D 来清空私钥列表
$ ssh-add -D


一、将公钥粘贴到git服务器平台上,如GitHub


当然可以直接打开刚生成的公钥文件id_rsa_github.pub文件,复制全部内容去平台Add SSH Key;也可以使用命令复制公钥文件内容贴到平台 Add SSH Key。


  • 附:使用命令复制

将SSH公钥复制到剪贴板上

$ pbcopy < ~/.ssh/id_rsa_github.pub
# Copies the contents of the id_rsa_github.pub file to your clipboard


提示:如果pbcopy不起作用,您可以找到隐藏的.ssh文件夹,在您最喜欢的文本编辑器中打开文件,并将其复制到剪贴板。


其规则就是:从上至下读取config的内容,在每个Host下寻找对应的私钥。

这里将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名如github2,那么原地址是:git@github.com:username/Mywork.git,替换后应该是:github2:username/Mywork.git。


二、测试连接


测试一下


$ ssh -T github2
Hi 0xJoker! You've successfully authenticated, but GitHub does not provide shell


  • 输入以下命令测试
$ ssh -T git@github.com
# Attempts to ssh to GitHub


您可能会看到这样的警告:


> The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
> Are you sure you want to continue connecting (yes/no)?


  • 验证您看到的消息中的指纹是否与GitHub的RSA公钥指纹匹配。如果是这样,则键入yes:
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.


您可能会看到以下错误信息:


...
Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).


这是某些Linux发行版的已知问题。有关更多信息,请参阅“错误:代理承认未能签名”。


  • 验证生成的消息是否包含您的用户名。如果您收到“permission denied【权限被拒绝】”消息,请参阅“Error: Permission denied (publickey)【错误:权限被拒绝(公钥)”】。


三、常见问题处理


经常与会遇到下面这种情况,我也很纳闷,每次都解析到不到域名和地址


ssh: Could not resolve hostname git.oschina.net: 
nodename nor servname provided, or not known


查资料之后的解决办法是:

step1.

ping address

获取到对于地址的ip

step2. 在/etc/hosts中添加一行如下:

ip address

xxxxxxxxxx

这样就可以玩起来了。


相关文章
|
7月前
|
网络安全 开发工具 git
GitHub 多账户 SSH 配置指南
本文介绍了如何在同一台电脑上配置多个 GitHub 账户的 SSH 密钥。内容包括:检查现有密钥、生成新的 SSH 密钥、配置 SSH config 文件、将公钥添加到 GitHub、验证 SSH 连接、设置 Git 用户信息、创建工作区目录、使用不同账户克隆仓库,以及为每个仓库配置独立的用户信息等步骤。通过这些操作,可以实现在不同项目中使用不同的 GitHub 账户进行提交和管理。
548 0
|
8月前
|
网络协议 开发工具 git
解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese
在使用 Git/Git小乌龟 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 git clone 或 git pull 等操作时出现 “fatal: unable to access ‘https://github.com/…/.git’: Recv failure Connection was reset” 的报错。这个问题通常是由网络连接问题或代理设置不正确导致的。在我的个人使用经验中,我亲自尝试了四种方法,它们都能够有效地解决这个报错。个人比较推荐方法二。
5456 1
|
10月前
|
人工智能 API 开发工具
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
2051 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
|
9月前
|
JSON JavaScript API
MCP 实战:用配置与真实代码玩转 GitHub 集成
MCP 实战:用配置与真实代码玩转 GitHub 集成
1918 4
|
8月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
424 0
|
10月前
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
8512 11
|
5月前
|
开发工具 git
Git版本控制工具合并分支merge命令操作流程
通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
1191 15
|
8月前
|
安全 开发工具 git
git的常用操作命令
git的常用操作命令
532 57
|
6月前
|
存储 缓存 开发工具
Git stash命令的详细使用说明及案例分析。
通过上述案例,我们看到stash命令能够在不丢失进度的情况下,帮助开发者临时切换开发上下文,这在处理多个任务或紧急bug时特别有用。正确使用Git stash可以大大提高开发的灵活性和效率。
2098 0
|
11月前
|
人工智能 前端开发 Java
用git rebase命令合并开发阶段中多条commit提交记录
通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
1909 60