今天生成服务器sshkey的时候悲剧的把本地~/.ssh/id_rsa
这个文件给覆盖了,然后导致我的git不能提交文件了,ssh如果没有特殊配置的话,默认使用的就是~/.ssh/id_rsa
这个文件当做私钥的,所以现在问题来了,我的git想要使用key访问远程仓库,而服务器也要用这个key,显然这两个key不是一样的,但是文件只有一个,怎么办呢?
解决方法如下:
执行生成key的命令
ssh-keygen -t rsa -C "xiaomingys@gmail.com"
接着会出现如下图:
注意红框部分,默认就是使用~/.ssh/id_rsa
这个路径存放key的,也就是说,如果你不指定key的存放路劲,而且你当前已经有这个文件的话,那么当前的文件是会被覆盖的,这当然不是我们想要的,所以
指定key存放路径
密码可以不需要,两次回车以后就生成了我们需要的key
接下就是需要配置我们的git使用我们新创建的key来访问远程仓库啦
vi ~/.ssh/config
如果没有config
这个文件,新建一个就好,然后在config
文件追加如下内容:
Host git.company.com
User git
IdentityFile /Users/guanliyuan/.ssh/test
IdentitiesOnly yes
其中git.company.com
是你的远程仓库域名User git
就这样配置就行了,表示这是给git命令使用的IdentityFile
这个表示私钥文件地址IdentitiesOnly
这个配置yes,表示只使用这里的key,防止使用默认的
以上,我的git又可以愉快的提交文件啦(^o^)/~