如何配置SSH密钥连接Git仓库

本文详细介绍SSH协议及其在Git服务器中的应用,包括SSH密钥的生成、存储位置、公钥配置流程及测试链接方法。适用于Linux、Mac及Windows用户。

关于SSH

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;是建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

现在大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。使用 SSH 协议使 Git 服务器与用户之间的通信更加的安全,另一方面用户访问 Git 服务器时也不再需要每次链接都输入账号和密码。

检查现有的SSH

为了向 Git 服务器提供 SSH 公钥,用户需要有自己的公钥,如果用户尚未拥有密钥,必须事先生成一份。 这个过程在所有操作系统上都是相似的。首先,你需要确认自己是否已经拥有密钥。

在正式开始之前,强烈建议 Windows 用户使用 Git 程序包自带的 git bash 命令行工具进行操作。

默认情况下,Liunx 用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:

$ cd ~/ .ssh
$ ls
id_rsa  id_rsa.pub  known_hosts

默认情况下,Windows 用户的 SSH 密钥存储在 C:\Users\Administrator\.ssh 目录下。

$ cd C:/Users/Administrator/.ssh
$ ls
id_rsa  id_rsa.pub  known_hosts

关键是看有没有用 something 和 something.pub 来命名的一对文件,这个 something 通常就是 id_dsa 或 id_rsa。有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

生成新的SSH密钥

假如没有这些文件,或者干脆连 .ssh 目录都没有,这个时候你就需要用 ssh-keygen 来进行创建。在 Linux/Mac 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。

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

键入命令回车后, ssh-keygen 首先会向你确认密钥的存储位置 —— Liunx 的默认为~/.ssh 目录下,Windows 用户默认的在 C:\Users\Administrator\.ssh 目录下。然后它会要求你输入两次密钥口令。如果你不想在使用密钥时输入口令,将其留空即可。

现在,进行完上述操作的用户就可以将各自的公钥配置到 Git 仓库;或者发送给你的 Git 服务器管理员(假设 SSH 服务被设定为使用公钥机制)。通常你只需要复制 .pub 文件的内容用于配置,或者发邮件给管理员。

Liunx 下输入 cat ~/.ssh/id_rsa.pub 即可查看。

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

Windows 用户需要切换到 C:\Users\Administrator\.ssh 目录下查看。

$ cd C:/Users/Administrator/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

测试SSH链接

完成上述操作拿到你的密钥之后,你就可以将你的 SSH 密钥添加到你的 Git 仓库。下边分别以 GitHubCODING 为示例简单介绍一下如何添加 SSH 公钥。

注:示例图片来自各平台线上帮助文档。

GitHub

  1. 复制已经生成的 SSH 密钥。
    1. 如果您的SSH密钥文件的名称与示例代码不同,请修改文件名以匹配当前设置。
    2. 复制密钥时,请勿添加任何换行符或空格。
  2. 登录到你的 GitHub 账号,在任意页面的右上角,点击你的账户头像,然后单击“设置”。

    Github

  3. 在用户设置侧栏中,单击SSH和GPG密钥。

    Github

  4. 单击“新建SSH密钥”或“添加SSH密钥”。

    Github

  5. 在“标题”字段中,为新密钥添加描述性标签。
  6. 将密钥粘贴到“密钥”字段中。

    Github

  7. 单击“添加SSH密钥”。

    Github

  8. 根据提示,确认您的GitHub密码。

    Github

CODING

CODING 的 SSH 密钥分为账户密钥和项目密钥,分别用于连接整个账户和连接单个项目。两者的设置是相似的,以下仅对账户 SSH 密钥进行说明。

  1. 复制已经生成的 SSH 密钥。
    1. 如果您的 SSH 密钥文件的名称与示例代码不同,请修改文件名以匹配当前设置。
    2. 复制密钥时,请勿添加任何换行符或空格。
  2. 登录到你的 CODING 账号,在页面的右上角,点击你的账户头像,然后单击“个人设置”。
  3. 在用户设置侧栏中,单击 SSH 公钥。
  4. 单击右上角的“新增公钥”。

    CODING

  5. 将第一步中复制的内容填写到「公钥内容」一栏,公钥名称可随意填写。
  6. 设定公钥有效期,可选择具体日期或设置永久有效。

    CODING

  7. 单击添加,根据提示,确认您的 CODINNG 密码。

完成 SSH 密钥添加后后,你可以对你的连接进行测试,同时建立与 Git 仓库的身份认证。

# Github
$ ssh -T git@github.com

# CODING
$ ssh -T git@git.coding.net

在验证的过程中系统可能提示你:无法建立主机'github.com / coding.net(IP ADDRESS)'的真实性

像这样的:

The authenticity of host 'github.com (IP ADDRESS)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

或者这样的:

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)?

这个时候,你只需要验证您看到的消息中的 RSA 密钥指纹是否与 生成新的 SSH 密钥 中的 RSA 密钥指纹匹配,然后键入yes即可:

Hi username! You've successfully authenticated.

# Coding
Hello username! You've connected to Coding.net by SSH successfully!

当验证生成的消息返回并包含您的用户名,就说明 SSH 公钥设置成功。

下载前必看:https://pan.quark.cn/s/19531c5c1008 在数字化时代背景下,处理多样化的图片格式成为普遍需求,“万用图片格式转换器”正是应对此类需求的一款高效且易于使用的工具,它凭借其单一文件运行特性、广泛的格式兼容性以及批量处理能力,成为了众多用户信赖的图片格式转换解决方案。这款应用程序仅需一个文件即可启动,极大地简化了安装流程和便携性,同时其功能完备性和转换速率的快捷性,无疑为我们的工作和生活带来了显著的便利。下面我们将深入剖析这款转换器的核心优势。它能够兼容36种不同的图片格式,这意味着几乎涵盖了市场上所有主流的图像文件类型。从应用最广泛的JPEG、PNG、BMP,到专业领域内常用的TIFF、GIF、SVG,甚至包括ICO图标和CUR鼠标光标格式,该软件均能无障碍处理。这种广泛的格式兼容性确保了用户无需顾虑格式兼容性问题,无论是日常的图片分享、网页设计还是专业的图形编辑,都能流畅操作。批量转换功能是“万用图片格式转换器”的一大特色。用户可以同时导入多个图像文件,设定统一的输出格式,然后通过一键操作完成所有图片的转换。这对于需要处理大量图片的场景来说,无疑大幅提升了工作效率,节省了宝贵的时间。不仅如此,批量转换还支持个性化输出尺寸和质量设置,满足不同需求,如优化图片大小、维持原始质量等。在具体应用层面,将图片转换为ICO格式,可便捷地制作个性化的电脑或网站标志;而将图片转换为CUR格式,能够轻松生成独特的鼠标指针效果。这些特色功能使得“万用图片格式转换器”不仅是一款格式转换工具,更是一个创意实现的得力助手。值得一提的是,尽管功能强大,但这款软件的用户界面设计却保持了简洁清晰,使得即使是计算机新手也能迅速掌握。只需进行几次简单的操...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值