链接gitee的步骤
为了解决 Permission denied (publickey),因此有了这篇文章。
1.生成公钥ssh-keygen -t ed25519 -C "xxx@outlook.com"
接着要设置保存私钥的文件名Enter file in which to save the key (/Users/username/.ssh/id_ed25519):
默认是id_xx,xx是上述-t 后面的字符串,可以改为id_github ,id_gitee等
2.连接agentssh-agent bash
3.添加私钥ssh-add ~/.ssh/id_ed25519
,注意此处的id_ed25519是生成私钥的文件名,位于.ssh目录下
4.查看私钥是否链接成功ssh-add -l
如果成功,则显示256 SHA256:xxxxxx
否则,显示could not open a connection to your authentication agent.
或者The agent has no identities.
, 这就需要配置账户了git config –global user.name
5.将id_pub里的内容设置到网站的ssh里
6.测试链接ssh -T git@gitee.com
如果不成功,有可能是项目里设置的远程是github,需要进入到项目的git config文件里修改remote
7.如何配置多个仓库的git,生成config文件touch config
配置相应的信息
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
Host gitee
User git
# 替换为你公司的 Git 代码托管平台的服务器
Hostname company-git-repo.com
# 你公司 SSH 服务的端口号
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
Host:指定连接到的主机名,可以随意指定,相当于实际连接目标主机的别名;github一定要设置为github.com ,否则出现git connection closed by port 22 的错误
User:指定使用的用户名,通常为 git,也可以不指定;
Hostname:指定连接到的主机的实际域名或IP地址。如果是向 Github 推送代码,则为 github.com,如果是向公司的 Git 代码托管平台推送代码,则填写公司主机的地址
Port:SSH 服务的端口号,默认为 22,可以不写,可设置为443
PreferredAuthentications:指定优先使用的身份验证方法,指定为publickey,即使用公钥进行身份认证。
IdentityFile:指定要使用的私钥文件路径,即指向你创建的私钥,我们这里分别为不通的 Git 代码托管平台指定了不同的私钥
设置本地链接远程git remote add origin 仓库地址
常见错误error: src refspec main does not match any
本地分支与远程分支不一样导致推送失败,用git branch 分支名
,将本地分支名进行修改。