如何配置SSH**连接Git仓库

关于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-****** 来进行创建。在 Linux/Mac 系统中,ssh-****** 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。

$ ssh-******
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 [email protected]

键入命令回车后, ssh-****** 首先会向你确认**的存储位置 —— 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== [email protected]

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== [email protected]

测试SSH链接

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

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

GitHub

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

    如何配置SSH**连接Git仓库

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

    如何配置SSH**连接Git仓库

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

    如何配置SSH**连接Git仓库

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

    如何配置SSH**连接Git仓库

  7. 单击“添加SSH**”。

    如何配置SSH**连接Git仓库

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

    如何配置SSH**连接Git仓库

CODING

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

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

    如何配置SSH**连接Git仓库

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

    如何配置SSH**连接Git仓库

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

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

# Github
$ ssh -T [email protected]

# CODING
$ ssh -T [email protected]

在验证的过程中系统可能提示你:无法建立主机'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 公钥设置成功。