现在主流的git服务,像gitee,github基本都支持ssh连接。
以下就以gitee为例,介绍一下如何使用ssh连接git仓库。
添加公钥
首先进入gitee的个人设置页,找到 "SSH公钥"
此处可以看到他是支持多种不同类型的算法的。
我们可以参考他的帮助 怎样生成公钥 来生成对应的公钥。
以windows系统为例,在命令行输入ssh-keygen
,然后根据提示全部选择默认值回车,就可以在 C:\Users\[当前用户]\.ssh
目录下生成id_rsa
和id_rsa.pub
两个文件。
打开id_rsa.pub
,并将全部内容复制到上面的公钥输入框就可以了。
测试连接
输入 ssh -T git@gitee.com
,
如果是第一次,则会出现如下提示:
The authenticity of host 'gitee.com (212.64.63.190)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入yes即可(如果存在多个,可以输入对应的fingerprint)。
连接成功之后则会出现提示:
Hi USERNAME! You've successfully authenticated, but GITEE.COM does not provide shell access.
此时在 C:\Users\[当前用户]\.ssh
目录下会多出来一个known_hosts
文件,里面记录了相关的连接信息。
克隆仓库
接下来就可以克隆仓库了,不过注意要使用SSH地址:
Errror GE007
在提交代码的时候如果出现以下错误,是因为设置了邮箱保护,需要取消对应的设置。
error: GE007: Your push would publish a private email address.
You can make your email public or disable this protection by visiting:
如下图,进入gitee的个人设置页,找到 "邮箱管理",取消勾选"不公开我的邮箱地址"
Azure DevOps
Azure DevOps 跟 gitee差不多,公钥的设置是在页面右上角的这里:
测试连接是使用以下指令:
ssh -T git@ssh.dev.azure.com
引用
- windows已经提供了对ssh的支持: https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_overview
- ssh-keygen 命令的完整描述: https://man.openbsd.org/ssh-keygen
- open ssh 手册: https://www.openssh.com/manual.html
- 在Azure DevOps 里面使用SSH https://learn.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops