我想请问一下,使用git push上传本地文件到远程github时,git是如何找到对应的私钥文件来完成git push的呢?
我主要是想到在使用ssh进行登录时,需要指定私钥文件的地址,为什么git push的时候不需要呢?
我在本地生成了一副密钥对,将公钥添加到github中,私钥放在~/.ssh/下面,为什么就能git push成功了呢?git是如何找到相应的私钥文件的呢?git是直接在~/.ssh/中去找私钥吗?还是在哪里的config中有配置私钥的路径呢?
谢谢
我想请问一下,使用git push上传本地文件到远程github时,git是如何找到对应的私钥文件来完成git push的呢?
我主要是想到在使用ssh进行登录时,需要指定私钥文件的地址,为什么git push的时候不需要呢?
我在本地生成了一副密钥对,将公钥添加到github中,私钥放在~/.ssh/下面,为什么就能git push成功了呢?git是如何找到相应的私钥文件的呢?git是直接在~/.ssh/中去找私钥吗?还是在哪里的config中有配置私钥的路径呢?
谢谢
fefe 说的没错,
我补充一下 ~/.ssh/config
的用法
比如我的 ~/.ssh/config
文件如下:
Host github
HostName github.com
User git
IdentityFile /root/.ssh/gihub
/root/.ssh/gihub
是用ssh-keygen
命令生成的另一个私钥
当我执行 git clone git@github.com:xxx/xxx
用的是默认私钥
当我执行 git clone git@github:xxx/xxx
用的就是 /root/.ssh/gihub
这个私钥了
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
5 回答2.8k 阅读
3 回答2.6k 阅读
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
私钥不是 git 用的,而是 ssh 用的。所以问题应该是,如何指定 ssh 用的私钥文件。
ssh 的私钥文件是默认放在 ~/.ssh 里的,不同的私钥有不同的文件名。详见 ssh 文档。
私钥文件也可以通过 ~/.ssh/config 来指定。