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

这样就可以玩起来了。


相关文章
|
1月前
|
移动开发 jenkins 持续交付
jenkins配置git
通过上述步骤,您可以在 Jenkins 中成功配置 Git,从而实现自动拉取代码并进行构建和部署。这些配置不仅提高了开发效率,还保证了代码的连续集成和交付。确保每一步配置正确,以避免在实际使用中遇到问题。
53 1
|
2月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
76 2
|
2月前
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
442 1
|
2月前
|
算法 网络安全 开发工具
[Git]关联远程库的两种方法及配置
本文介绍了 git 的四种连接方式:ssh 连接、HTTPS 连接、SVN 连接和 SVN + ssh 连接,重点讲解了 HTTPS 和 ssh 连接方式的配置及注意事项。文章详细解释了 HTTPS 连接的身份验证过程、常见问题及解决方案,以及 ssh 连接的公钥和私钥的创建、配置方法。此外,还介绍了如何在同一台电脑上连接多个 gitee 账号的方法。
216 0
[Git]关联远程库的两种方法及配置
|
2月前
|
Linux 网络安全 开发工具
IDEA如何配置git和github
【11月更文挑战第14天】本指南详细介绍了如何在 IntelliJ IDEA 中配置 Git 和 GitHub,包括检查和设置 Git 路径、测试配置,以及通过 SSH 或 HTTPS 方式配置 GitHub 仓库的具体步骤。完成配置后,用户可在 IDEA 中轻松进行版本控制操作。
240 0
|
3月前
|
编译器 网络安全 开发工具
git学习五:切换本地仓库出现的问题。修改git配置初始化。error:src refspec master does not match any。错误总结,送上几个案例
这篇文章是关于Git使用中遇到的一些问题及其解决方案的总结,包括切换本地仓库时的问题、修改Git初始化配置、以及解决"error: src refspec master does not match any"错误等。
91 0
|
网络安全
|
网络安全 Linux 数据安全/隐私保护
不能成功配置ssh信任,提示Agent admitted failure to sign using the key.
不能成功配置ssh信任,提示Agent admitted failure to sign using the key. 问题现象:      做完信任之后要需要输密码: [grid@db01 .
1519 0
|
网络安全
配置多台机器SSH相互通信信任
1.5台机器执行 ssh-keygen [root@sht-sgmhadoopnn-01 ~]# ssh-keygen Generating public/private rsa key pair.
1653 0