git 指定sshkey访问远程仓库

681 查看

今天生成服务器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^)/~