xcodeからリモートのGitリポジトリの認証に既存の秘密鍵をつかう

Posted by @kachina_t on Tue, Jan 3, 2017
In Development
Tags development

やりたいことができるアプリが App Store になかったので、いまさらながら iPhone アプリの実装にチャレンジすることにしました。 Swift のチュートリアルをやっているのですが、ステップ毎に Git リポジトリにコミットしてリモートの BitBucket に Push しておこうと思った際につまずいたのでメモしておきます。

実行環境は以下のとおりです。

  • Xcode 8.2.1
  • Remote Gitリポジトリ: BitBucket
  • 認証方式: 公開鍵認証

リモートリポジトリ(BitBucket)側に登録されている公開鍵

既に Xcode 以外の開発環境でも BitBucket は利用しているので公開鍵の設定は済んでおり、登録済みの鍵ペアは以下のとおりです。

  • ~/.ssh/foo.pem (秘密鍵)
  • ~/.ssh/foo.pub (公開鍵)

リモートリポジトリの登録

まず、Xcode からリモートリポジトリを設定を実施します。

  1. [menu bar] -> [Source Control] -> [“プロジェクト名” – master] -> [Configure “プロジェクト名”…] でサブウィンドウを開く
  2. [Remote]タブの から[Add Remote…] からリモートリポジトリを登録します。

リモートリポジトリへのPush

チュートリアルを進めて、いざリモートリポジトリにPushしようとしたら秘密鍵を作成するよう為のガイダンスが表示されてしまいました。
わたしとしては、既にリモートリポジトリに登録済みの ~/.ssh/foo.pem で認証したいのですが、その選択肢はないようです。

色々調べてみたところデフォルトでは ~/.ssh/id_rsa を参照するようでしたので、以下のコマンドでシンボリックリンクを貼ることで、新たに鍵ペアを増やすことなくSSH鍵認証で BitBucket を利用することができました。

$ ln -s ~/.ssh/foo.pem ~/.ssh/id_rsa
$ ln -s ~/.ssh/foo.pub ~/.ssh/id_rsa.pub

おしまい