GIT配置SSH以及多账户配置

本文详细介绍了如何生成SSH密钥用于Git服务器的身份验证,并提供了在不同操作系统上生成密钥的具体步骤。此外,还讲解了如何配置多个Git账户,包括密钥的管理和在GitLab、GitHub等平台上的绑定方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:
  • 在这里插入图片描述
    其中.pub后缀的是公钥(我这里是配置了两个),另外一个同名不带后缀的是私钥
  • 生成ssh密钥
 ssh-keygen -t rsa -C "your_email@example.com"
代码参数含义:
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。

回车确认,会要求你输入保存密钥的位置以及使用密钥的口令,保持默认(回车)即可

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\focus\.ssh\id_rsa):
Created directory 'C:\Users\focus\.ssh.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\focus\.ssh\id_rsa.
Your public key has been saved in C:\Users\focus\.ssh\id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 your_email@example.com

如果有多个账户的话,可再次执行该操作,不过生成时候的文件名有所不同

ssh-keygen -t rsa -C "your_email2@example.com"
 Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\focus\.ssh\id_rsa):C:\Users\focus\.ssh\id_github_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\focus\.ssh\id_github_rsa.
Your public key has been saved in C:\Users\focus\.ssh\id_github_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 your_email2@example.com

可同时看到两个文件
在这里插入图片描述

  • 将密钥添加到ssh-agent的高速缓存中
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_github_rsa
  • 展示已经添加的密钥
ssh-add -l
  • 配置多个git账户
    1.在指定的密钥生成文件夹目录下创建config文件,配置多个账户的git信息,若访问端口非默认的80端口,需要通过Port参数指定,否则将无法正常使用,区分公钥文件位置以及名称
#gitlab
Host github.app.cn
   HostName github.app.cn
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_hd
   Port 10080

#github
Host github.com
   HostName github.com
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_github

# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
# HostName : 要登录主机的主机名
# User : 登录名
# IdentityFile : 指明上面User对应的identityFile路径
  • 绑定密钥
    这里配置了两个账户,但是绑定的方式大同小异
    1.登陆到git网站,setting中绑定key,添加一个新key,将*.pub文件中内容复制进去
    在这里插入图片描述
    gitlab的绑定方式类似,不再赘述
    绑定完成测试一下:
    ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not
 provide shell access.

恭喜你,配置完成,尽情使用吧!

### 如何配置 Git 使用 SSH 进行身份验证 #### 创建新的 SSH 密钥对 为了使 Git 能够通过 SSH 协议与远程仓库通信,首先需要创建一个新的 SSH 密钥对。这可以通过执行以下命令来完成: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 上述命令会生成一个基于 RSA 的新密钥对,并将其保存在默认位置 `~/.ssh/id_rsa` 下[^2]。 #### 添加 SSH 私钥至 SSH Agent 为了让计算机记住私钥,在每次重启后无需重新输入密码,需启动 SSH agent 并加载私钥: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` 此过程确保了本地机器能够自动处理后续涉及该私钥的操作请求[^3]。 #### 将公钥添加到 GitHub 或其他 Git 托管平台账户设置中 获得由上一步骤产生的 `.pub` 文件中的内容(即公钥),并按照托管服务商指示的方法粘贴到对应的个人资料里去。对于 GitHub 用户来说,具体路径通常是:“Settings -> SSH and GPG keys -> New SSH key”。 #### 修改现有项目的远程地址为 SSH 形式 当项目已经初始化并且之前是以 HTTPS 方式克隆下来的时候,应该更新其远端链接指向以便切换成 SSH 模式工作: ```bash git remote set-url origin git@github.com:username/repository.git ``` 这里请替换实际存在的用户名和库名作为参数传递给指令[^1]。 #### 测试连接状态 最后一步就是确认一切正常运作,可通过尝试建立一次无害的安全 shell (SSH) 会话来进行检验: ```bash ssh -T git@github.com ``` 如果返回消息类似于 “Hi username! You've successfully authenticated...”,则说明整个流程顺利完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ExtraMile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值