Git配置使用ssh服务
开始
首先得自己安装好git,再进行后面的动作。
Mac系统
设置用户名和邮箱
shell
git config --global user.name "zbf"
git config --global user.email "zbfcqtl@gmail.com"
生成秘钥
shell
ssh-keygen -t ed25519 -C "zbfcqtl@gmail.com"
一般不设置密码的情况下,一直回车。
如果要添加多个,比如github一个,gitee一个,可以在Enter file in which to save the key (
/Users/yourname/.ssh/id_ed25519
): 后面标识一下文件/Users/yourname/.ssh/id_ed25519_github
,后面名称也应该对应上
添加公钥
shell
cat ~/.ssh/id_ed25519.pub
以ssh-ed25519开头,邮件结尾。复制后添加到github或者gitlab等代码托管中的SSH keys。

测试
shell
ssh -T git@github.com
会有连接询问,或者上面生成秘钥的时候,设置了密码会提示输入,最后的效果:

Windows系统
过程有更多一些的问题
查看ssh目录
最简单的就是去当前登录Windows系统用户目录下看是否有.ssh目录,没有就自己创建一下。
或者命令行,没有就会报错,再自行创建一个吧。
cd ~/.ssh
# mkdir ~/.ssh
设置用户名和邮箱
shell
git config --global user.name "zbf"
git config --global user.email "zbfcqtl@gmail.com"
生成秘钥
生成秘钥前保证在 ~/.ssh文件夹
shell
ssh-keygen -t ed25519 -C "zbfcqtl@gmail.com"
和上面一样,一般不设置密码的情况下,一直回车。我的习惯一般是公司名+ed25519,比如:gy_ed25519
ssh-add
OpenSSH<7.2
shell
ssh-add ~/.ssh/id_ed25519
Error connecting to agent: No such file or directory
这一步可能会有如下错误Error connecting to agent: No such file or directory。安装下面的步骤解决
查看启动情况
shell
get-service ssh*
- 显示下面的内容代表服务没有启动:
Status Name DisplayName
------ ---- -----------
Stopped ssh-agent OpenSSH Authentication Agent
默认应该是启动的,这种问题需要检查杀毒软件是否有禁用这个开机启动下面是电脑管家的界面

启动命令:
shell
Set-Service -Name ssh-agent -StartupType Manual
shell
Start-Service ssh-agent
该问题解决办法原文:https://www.cnblogs.com/attackingmilo/p/Windows-ssh-add-error.html
~/.ssh/id_ed25519: No such file or directory
这个是路径的问题,最佳解决方案是找到C:/Users/用户名/.ssh下的对应文件,右击-属性-安全,复制对象名称。
显示一下内容才算成功:
Identity added: C:\Users\用户名\.ssh\id_ed25519 (C:\Users\用户名\.ssh\id_ed25519)
添加公钥
Windows系统就不用命令行工具和相关编辑器了,直接进入 C:\Users\用户名\.ssh 用文本编辑器打开 id_ed25519.pub 文件,它香得不行。
以ssh-ed25519开头,邮件结尾。复制后添加到github或者gitlab等代码托管中的SSH keys。

测试
shell
ssh -T git@github.com
会有连接询问,或者上面生成秘钥的时候,设置了密码会提示输入,最后的效果:

Windows下效果和Mac下效果一样,就不截图了。
agent returned different signature type ssh-ed25519 (expected ed25519-sha2-512)
这是windows的环境问题,解决办法参考https://ai-digital-marketing.blogspot.com/2020/05/fixed-windows-warning-agent-returned.html
Too many authentication failures
解决办法参考下面的 配置了多个失效问题
配置了多个失效问题
在.ssh
文件夹下新建config文件,配置IdentityFile
指定一下配置文件,例如:
Host github.com
IdentityFile ~/.ssh/id_ed25519_github
Host *.gitee.com
Prot 23300
IdentityFile ~/.ssh/id_ed25519_gitee
指定代理
config
Host github.com
ProxyCommand nc -x 127.0.0.1:7890 %h %p
IdentityFile ~/.ssh/id_ed25519