ssh 的私钥并没有放在 ssh-add 的高速缓存里,甚至 ssh-agent.exe 没有启动。为什么还是能正常 git clone?

2021-07-27 18:01:08 +08:00
 AllenHua

执行 ssh-add -l 终端输出 The agent has no identities.

C:\Users\MY_USERNAME\.ssh\ 下存放了很多不同网站(比如 github 、gitee 、 公司 gitlab 、自建 gitlab )的公钥私钥对、以及 config 、environment 文件

以前有一次帮同事排查 git clone Permission Denied 的问题,后面帮他启动了 ssh-agent 程序,并使用 ssh-add PRIVATE-KEY-PATH 命令添加了私钥到 ssh-add 的高速缓存里了,再 git clone,成功了。

但是今天发现 ssh-agent 程序不启动也可以正常 git clone,是为什么?求解惑。


另外推荐一个 ssh for Windows 的配置,使用 Git Bash

👉🏻 Setup SSH Authentication for Git Bash on Windows: https://gist.github.com/bsara/5c4d90db3016814a3d2fe38d314f9c23

1569 次点击
所在节点    程序员
7 条回复
AoEiuV020
2021-07-27 18:14:34 +08:00
有没检查.ssh/config,我都是在这里配置的私钥,
momocraft
2021-07-27 18:20:07 +08:00
1. 从你给的信息尚不能确定 clone 用的什么协议
2. ssh -v (GITHUB) 看看用的是哪来的哪个 key
dingwen07
2021-07-27 19:28:46 +08:00
有没有可能是自动用了.ssh/id_rsa
jim9606
2021-07-27 19:42:02 +08:00
如果没在.ssh/config 做设置,默认会使用.ssh/id_xxxx 私钥,特别是你没给这个私钥文件加密码的时候。
如果打算用 ssh-agent,私钥一定要加密,不然就是骗自己。
AllenHua
2021-07-27 20:31:25 +08:00
@AoEiuV020 #1 谢谢。
@jim9606 #4 谢谢。

一直都用 .ssh/config 的配置的。可能是当时 Host 命名的不对

```
Host xxx
Hostname github.com
IdentityFile /Users/USERNAME/.ssh/xxx_id_rsa
User xx
Port 22
```

可能是当时 Host 命名不对导致的

@momocraft #2 谢谢
@dingwen07 #3 我没有这个文件,我的私钥我都独立命名成了 xxx_id_rsa 以更好区分的。如果用了这个文件应该会报 No such file or directory 的错误的。

感谢大家的回复
julyclyde
2021-07-28 16:02:19 +08:00
试试直接 ssh (不用 git )去访问,如果也可以的话,ssh -v 参数应该可以显示用了哪个 key
AllenHua
2021-07-28 16:31:27 +08:00
@julyclyde #6 现在已经没法复现了。

没记错的话 当时是没有 User 为 git 并且 Host 是 github .com ( Hostname 也是 github .com) 的配置

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX