开发者

Non default ssh keypair for git on XCode 4

开发者 https://www.devze.com 2023-03-11 22:13 出处:网络
I\'d like to use a specific public/private key pair on a project I am working on. I managed to get the XCode git repo working by copying my keypair to ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub but I would p

I'd like to use a specific public/private key pair on a project I am working on. I managed to get the XCode git repo working by copying my keypair to ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub but I would prefer to name them id_github/id_github.pub or something similar (and keep my existing default keypairs as id_rsa). This is easily achieved with the git commandline using ssh config file (http://help.github.com/multiple-ssh-keys/).

However I cannot see how to do this with XCode 4. I start it up, click "Connect to a repository" and if I specify ssh开发者_C百科://github:projectname (where github is an ssh config entry containing my username) it tells me that the "Host is unreachable".

Does anyone know how to do this or if it is at all possible in XCode?


You need to create a host configuration for github.

% man ssh_config

Create an entry in ~/.ssh/config, it would look something like this:

Host github
  HostName github.com # or whatever
  User git
  IdentityFile /home/.ssh/id_github

You can then check out repositories from the CLI via

% git clone ssh://github:gitusername/projectname.git

Or in Xcode using the same URL signature.

On a side, you can also declare a non-standard port using the Port host config. This allows you to use scp over ssh on non-standard ports.

edit

One thing I did notice, is that sometimes Xcode claims it is unreachable on the first click, but by clicking "back" and trying again…it goes through. Noticed this on the most recent repo I set up.


You should be specifying the url with

git@github:username/projectname.git

instead of the ssh one you are specifying.

Hope this helps.


The most reasonable workaround for this is just to upload multiple keys to github. I didn't realize that was possible at the time I asked the question but it solves the problem for me.

Of course, just using the git command line is always optimal :)

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号