基于Windows 10
学习本文,你应该拥有以下技能:
git bash的基本使用。GitHub帐号,并可以登录。git agent。建议使用 CMD 运行 ssh-agent 即可
如果报错 unable to start ssh-agent service, error :1058,可能是你的服务被禁止启动,在服务管理里找到名为 OpenSSH Authentication Agent 的服务,将其改为手动,再尝试运行ssh-agent。

参考:Starting ssh-agent on Windows 10 fails: "unable to start ssh-agent service, error :1058"
请确保ssh-agent服务已启动再执行下一步!
Git Bash命令中 [email protected] 替换为你的邮箱地址shellssh-keygen -t ed25519 -C "[email protected]"
**注:**如果您使用的是不支持 Ed25519 算法的旧系统,请使用以下命令:
shellssh-keygen -t rsa -b 4096 -C "[email protected]"
文件名建议指定,路径建议默认即可)、密码(可忽略)其中/c/Users/xxhu5/.ssh/为指定目录,id_ed25519_ff为指定文件名

shellssh-add ~/.ssh/id_ed25519_ff
git bash 中运行以下命令,以复制指定公钥(注意是.pub文件)shellclip < ~/.ssh/id_ed25519_ff.pub
也可以手动找到
id_ed25519_ff.pub文件,然后复制其内容

点击Add后,会输入github密码确认,确认后即可完成添加。
.ssh文件夹,如我的文件地址:C:\Users\xxhu5\.ssh\git bash命令行界面touch config命令,创建config文件vim config命令,编辑config文件如果无法通过以上命令操作来创建和编辑文件,手动创建
config文件也可以。
Host ff HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_ed25519_ff
Host:本地名称,可自定义【重要:后续运行Git相关命令时,需要使用】HostName:真实地址,一般是固定的仓库地址,如github.com,gitee.comPreferredAuthentications:密钥类型,一般默认publickeyIdentityFile:密钥文件地址,即通过**生成SSH密钥**生成的文件官方文档:testing-your-ssh-connection
git bash,执行如下shellssh -T git@ff
Hi DingDangDog! You've successfully authenticated, but GitHub does not provide shell access.
第一次连接可能会出现如下警告,输入yes即可连接。
shellThe 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)?
错误1:若继续出现如下提示,请检查排查密钥配置是否正确。
shellgit@ff: Permission denied (publickey).
错误2:出现如下警告,是因为我重装系统,known_hosts中存在错误配置,删除.ssh文件夹下的known_hosts文件,重新执行ssh -T git@ff即可。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ED25519 key sent by the remote host is SHA256:+*************************. Please contact your system administrator. Add correct host key in /c/Users/admin/.ssh/known_hosts to get rid of this message. Offending ED25519 key in /c/Users/admin/.ssh/known_hosts:2 Host key for github.com has changed and you have requested strict checking. Host key verification failed.
若运行ssh -T git@ff命令成功后,运行git push时仍然报错Permission denied(无权限),一般是由于远程仓库地址的问题,请检查本地仓库配置的远端地址是否正确。
常见错误地址:
错误1:https://github.com/DingDangDog/learn.git:仍然是Https方式的地址,应切换为ssh地址。
错误2:[email protected]:DingDangDog/learn.git:以本文演示为例,[email protected]应替换为git@ff
如下图使用命令查看

发现是Https的URL,需要切换为git,如下图在仓库中查看 ssh 地址

shellgit remote set-url origin git@ff:DingDangDog/learn.git
如果在单用户时已经配置了config文件,那么在变更为多用户时,只需重复以上步骤,并在config中增加配置即可。
如果以前没有配置config文件,则回到【添加配置文件】
在config文件中配置多个Host即可,如下
Host ddd HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_ed25519_ddd Host ff HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_ed25519_ff
使用时,默认的Git远程仓库地址
[email protected]应替换为git@[Host]
shell# 绑定本地,注意@后边是config文件中配置的Host
ssh -T git@ddd
# 切换指定仓库的地址为ssh方式,注意ddd为config文件中配置的Host
git remote set-url origin git@ddd:DingDangDog/learn.git
# 推送
git push
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!