生成/添加 SSH 公钥
进入 /Users/你的用户名/.ssh/ 目录下。
执行以下命令生成:
$ ssh-keygen -t rsa -C "xxxxxxxxxx@xxx.com"
在冒号后面输入:id_rsa_github
第二遍配置 Gitee 时需要改成
id_rsa_gitee和 Github 的区分开来。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/liujing/.ssh/id_rsa): id_rsa_github
回车后会提示输入该密钥的密码。(直接回车跳过)
Enter passphrase (empty for no passphrase):
二次密码确认同样回车跳过。
Enter same passphrase again:
出现以下内容表示 SSH 密钥生成成功。
Your identification has been saved in id_rsa_test.
Your public key has been saved in id_rsa_test.pub.
The key fingerprint is:
SHA256:hUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV4 263xxxx631@qq.com
The key's randomart image is:
+---[RSA 3072]----+
| .o . . |
| . |
| o . . |
| + . |
| + +S . |
|. ===.+ ... + . |
|..+Eo+o..oo= o |
|o+==OX ....#. |
|*=+===+EoO. |
+----[SHA256]-----+
以上是配置 Github,配置 Gitee 则大同小异,只需在生成密钥时把 id_rsa_gitee,目的是做好区分。
添加 SSH 公钥
使用命令查询 /Users/你的用户名/.ssh/ 目录,查看是否存在上一步生成的密钥。
复制 id_rsa_github.pub 文件中的公钥。
$ cat id_rsa_github.pub
打开对应平台的 SSH 公钥管理 Github SSH 公钥管理 | Gitee SSH 公钥管理
点击:新建公钥 >> 输入公钥标题 >> 粘贴上边复制的公钥 >> 点击保存
以上是配置 Github 的,配置 Gitee 只需复制 id_rsa_gitee.pub 中的公钥到 Gitee SSH 公钥管理中。
添加配置文件
在 .ssh/ 目录下新建一个名为 config 的文件。
用文本编辑器打开,并进行编辑,复制以下内容进行粘贴。
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
测试连接
# 测试 Github 连接
$ ssh -T git@github.com
or
# 测试 Gitee 连接
$ ssh -T git@gitee.com
第一次连接需要添加到可信任列表
The authenticity of host 'github.com (13.250.177.223)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
ECDSA key fingerprint is MD5:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes ⬅️ 输入 yes 并回车
配置完成!
出现以下内容后,就证明添加成功,就可以使用 SSH 协议对仓库进行操作了。
# Github
Hi Yourname! You've successfully authenticated, but GitHub does not provide shell access.
or
# Gitee
Hi Yourname! You've successfully authenticated, but GITEE.COM does not provide shell access.
FQA
在使用 `ssh -T git@xxxxxx.xxx 时可能会出现以下问题
操作超时,可能是远程主机暂不支持 ssh 连接
ssh: connect to host 88.88.88.88 port 22: Operation timed out
不能输入 http / https,会识别不出来
ssh: Could not resolve hostname http://xxxxxx.xxx/: nodename nor servname provided, or not known
没有权限,请检查密钥对是否配置正常
git@88.88.88.88: Permission denied (publickey).
git@gitlab.com: Permission denied (publickey,keyboard-interactive).
本文详细介绍了如何在本地生成SSH公钥,包括配置Github和Gitee的不同需求,以及如何添加SSH公钥到对应的平台上,最后通过测试确保连接成功。
1024

被折叠的 条评论
为什么被折叠?



