7.Github的SSH密钥配置步骤(Linux)

关于 SSH

使用 SSH协议 密钥可以连接 GitHub远程服务器和服务并向它们验证,而无需在每次访问时提供用户名或密码。

1.检查是否有已存在 SSH 密钥

在生成 SSH 密钥之前,您可以检查是否有已存在 SSH 密钥。

注意:DSA 密钥 (SSH-DSS) 不再受支持。 老DSA密钥将继续运行,但您不能将新的 DSA 密钥添加到您的 GitHub 帐户。

  1. 打开 Terminal(终端)。
  2. 输入 ls -al ~/.ssh 以查看是否已经有 SSH 密钥存在:$ ls -al ~/.ssh # 如果.ssh目录存在,将列出.ssh目录下所有的文件
  3. 检查目录列表以查看是否已经有 SSH 公钥。 默认情况下,公钥的文件名是以下之一:
    • id_rsa.pub
    • id_ecdsa.pub
    • id_ed25519.pub

如果您没有现有的公钥和私钥对,或者不想使用任何可用于连接到 GitHub 的老密钥对,则可以生成新的 SSH 密钥。

如果您看到列出的现有公钥和私钥对(例如 id_rsa.pub 和 id_rsa),并且您希望使用它们连接到 GitHub,则可以将 SSH 密钥添加到 ssh-agent。

提示:如果您收到错误“~/.ssh 不存在”,不要担心! 我们在生成新的 SSH 密钥时会创建它。

2.生成新的SSH密钥

如果您还没有 SSH 密钥,则必须生成新 SSH 密钥。 如果您不确定是否已有 SSH 密钥,请参考上一步。

如果不想在每次使用 SSH 密钥时重新输入密码,您可以将密钥添加到 ssh-agent,让它管理您的 SSH 密钥并记住您的密码。

1.打开 Terminal(终端)。

2.粘贴下面的文本(替换为您的 GitHub 电子邮件地址)。

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

3.这将创建以所提供的电子邮件地址为标签的新 SSH 密钥。

> Generating public/private rsa key pair.

4.提示您“Enter a file in which to save the key(输入要保存密钥的文件)”时,按 Enter 键。 这将接受默认文件位置。

> Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]

5.再提示时输入安全密码。

使用 SSH 密钥时,如果有人获得您计算机的访问权限,他们也可以使用该密钥访问每个系统。 要添加额外的安全层,可以向 SSH 密钥添加密码。

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

通过输入以下命令,您可以更改现有私钥的密码而无需重新生成密钥对:

$ ssh-keygen -p
# 开始SSH密钥创建过程
> Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]
> Key has comment '/Users/you/.ssh/id_rsa'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]
> Enter same passphrase again: [One more time for luck]
> Your identification has been saved with the new passphrase.

如果您的密钥已有密码,系统将提示您输入原始密码,然后才能更改为新密码。

3.将 SSH 密钥添加到 ssh-agent

您可以使用 ssh-agent 安全地保存密码,从而不必每次使用SSH 密钥都需要输入密码。

1.在后台启动 ssh 代理。

$ eval "$(ssh-agent -s)"
> Agent pid 59566

2.将 SSH 私钥添加到 ssh-agent。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_rsa 替换为您的私钥文件的名称。

$ ssh-add ~/.ssh/id_rsa

4.新增 SSH 密钥到 GitHub 帐户

1.将 SSH 密钥复制到剪贴板。

如果您的 SSH 密钥文件与示例代码不同,请修改文件名以匹配您当前的设置。 在复制密钥时,请勿添加任何新行或空格。

方法一:
# 下载并安装 `apt-get`, 你可能需要使用另外一种包安装管理器 (比如 `yum`)
$ sudo apt-get install xclip

# 复制 id_rsa.pub 文件内容到剪切板
$ xclip -sel clip < ~/.ssh/id_rsa.pub

方法二:
#你可以复制此命令的输出内容,然后运行下一步
$ cat ~/.ssh/id_rsa.pub

提示:如果 xclip 不可用,可找到隐藏的 .ssh 文件夹,在常用的文本编辑器中打开该文件,并将其复制到剪贴板。

2.在用户设置侧边栏中,单击 SSH and GPG keys(SSH 和 GPG 密钥),单击 New SSH key(新 SSH 密钥)或 Add SSH key(添加 SSH 密钥),在 “Title”(标题)字段中,为新密钥添加描述性标签。 例如,如果您使用的是个人 Mac,此密钥名称可能是 “Personal MacBook Air”,将密钥粘贴到 “Key”(密钥)字段,单击 Add SSH key(添加 SSH 密钥)

5.测试 SSH 连接

设置 SSH 密钥并将其添加到您的 GitHub 帐户后,您可以测试连接。

测试连接时,您将需要使用密码(即您之前创建的 SSH 密钥密码)验证此操作。 有关使用 SSH 密钥密码的更多信息,请参阅下一步“使用 SSH 密钥密码”。

1.打开 Terminal(终端)。

2.输入以下内容:

# 尝试 ssh 连接至 GitHub
$ ssh -T git@github.com

您可能会看到类似如下的警告:

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

3.验证您看到的消息中的指纹匹配步骤 2 中的消息之一,然后输入 yes

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

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/git/1638.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注