ubuntu使用SSH连接github

我们在 windows 操作系统下可以直接用 github desktop 实现傻瓜式操作,但是在如 ubuntu 这种 linux 系统下如果想要在github克隆仓库、推送代码就需要使用命令行交互。若使用 HTTP 在推送代码的时候需要校验非常麻烦,因此本文总结了在 ubuntu环境下配置 SSH 连接 github 的操作步骤。

首先需要生成 SSH 密钥对,首先可以通过命令查看自己的服务器 or 主机上面是否已经存在了 SSH 密钥,在 bash 输入以下命令:

ls ~/.ssh/

若看见类似 id_ed25519, id_ed25519.pub 类似的输出(取决于加密方式),则说明本地已经存在一个密钥对无需再重复生成。此时如果重复生成可能会破坏已经建立好的 SSH 连接(影响用同一台服务器的小伙伴)

若尚未生成密钥对,在终端输入以下命令:

ssh-keygen -t ed25519 -C "your_email@example.com"

此时应该能够在 ~/.ssh/ 路径下见到 id_ed25519, id_ed25519.pub 。如果首次生成密钥,或者本地的 SSH 配置进行了更新,都需要私钥添加到 SSH 代理中(SSH 配置在 ubuntu 更新中可能会有影响,因此也需要检查)。终端运行以下命令可以查看当前 SSH 代理有没有加载私钥:

ssh-add -l

如果输出结果为:

The agent has no identities.

则表示当前 SSH 代理中并没有加载本地的私钥,我们需要通过以下命令加载:

ssh-add ~/.ssh/id_ed25519

加载完成后重新查看 SSH 代理加载的私钥列表,可以看到我们所加载的公钥的指纹(表明对应的私钥被成功加载到本地的 SSH 代理中)。至此私钥的配置完成。

接下来需要配置公钥到 github 账户中,通过以下命令复制公钥添加到 github

cat ~/.ssh/id_ed25519.pub

登录 github 点击头像选择 Settings,在菜单中找到 SSH and GPG keys 后根据指示操作即可,把公钥的内容粘贴到 Key 字段中,并确认添加 SSH key

完成 SSH 公钥添加之后会在 github 页面中显示对应公钥的指纹,如 SHA256:sECgpwYMqVRpxgbZ/ib4klpPT+YleiL/NxiuO/tb+lU。该指纹是公钥经过加密哈希函数处理后生成的一串短小、唯一的标识符,不可逆。因此我们将无法直接在 github 中查看公钥的原文,如果需要比对我们在 github 中添加的公钥跟本地的公钥是否一致,需要用以下命令计算我们本地公钥的指纹:

ssh-keygen -lf ~/.ssh/id_ed25519.pub

其中:-l 表示 list fingerprint,-f 指定要查看指纹的密钥文件路径(其实都可以通过 ssh-keygen --help 查看)

添加成功后使用命令来测试 SSH 连接是否成功:

ssh -T git@github.com

一切正常会看到类似如下信息:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

当然在国内连接 github 经常遇到奇奇怪怪的问题,之前就试过在前面配置完全正常的情况下 SSH 始终无法成功连接 github 账户。这个时候考虑在本地的 .ssh/config 文件中配置流量路径

Host github.com
  Hostname ssh.github.com
  Port 443
  User git
  IdentityFile ~/.ssh/id_ed25519

规定通过 SSH 连接到 github 的流量走 443 端口,而非国内经常受阻的默认 22 端口

某些网络(如公司防火墙、学校或公共WiFi)会屏蔽SSH默认的22端口,导致连接失败。

之后就可以使用命令行克隆本人的公有或私有仓库了,并且还能随便 pull 和 push 无需输入密码

git clone git@github.com:username/repository.git

如果需要把 github 仓库 http 连接改成成 ssh 连接,可以执行以下操作:

git remote set-url origin <your-ssh-url>

成功完成操作之后,可以通过以下命令检查仓库的连接地址,修改前后会从 http 链接修改为 ssh 链接

git remote -v 

references:
手把手教你配置GitHub SSH密钥,轻松克隆仓库_github密钥配置-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值