怎么配置公钥和私钥

以下内容参考自 github ssh 配置,gitee的配置也是一样的;
粘贴以下文本,将示例中使用的电子邮件替换为 GitHub 电子邮件地址。

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

注意:如果你使用的是不支持 Ed25519 算法的旧系统,请使用以下命令:

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

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

Generating public/private ALGORITHM key pair.

以下是一个错误的写法 ❌:

错误的写法:ssh-keygen -t rsa -C “cocoli@qq.com”
这样git会配置失败的;

遇到选项敲回车跳过就行;
在这里插入图片描述

修改 ~/config

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

密钥会默认保存在 /root/.ssh 文件夹下里面有一个*.pub 结尾的文件,里面存放的是公钥,将公钥文件复制粘贴到gitee或者github进行配置;
在这里插入图片描述

验证配置成功

ssh -T git@gitee.com

如果显示端口被关闭,可以尝试关闭 V P N, 再重新尝试

然后输入: yes
得到下图所示的结果,就是配置成功了;
在这里插入图片描述

TIPS:

有一个小技巧,上述相同的公钥,可以同时在gitee和github进行配置,这个是可以的;
在github也添加公钥之后,试试
ssh -T git@github.com

问题

Q: 为什么,git 已经配置成功了,下载和上传文件还是要输入用户名和密码?

可以在github或者gitee,选择http和ssh等不同协议的下载方式,如果是linux,不想输入密码的话,建议 ssh;
在这里插入图片描述
这是因为你使用的是 http,要输入账号和密码的;

在这里插入图片描述

如下图所示,git 使用 ssh,则无需账号和密码:
在这里插入图片描述

ssh -T 连通失败

发现 ping github 是能通的,这说明与 github 的网络链接没有问题。在github 上也已经对密钥授权了,但 ssh -T 显示 port 22: Connection refused。

使用 -vT 可以 debug 输出中间信息。

ssh -vT git@github.com

输出如下:

C:\Users\1>ssh -vT git@github.com
OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2
debug1: Connecting to github.com [127.0.0.1] port 22.
debug1: connect to address 127.0.0.1 port 22: Connection refused
ssh: connect to host github.com port 22: Connection refused

参考资料

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐