🗝️
Unityのパッケージ取得にパスフレーズ付きの秘密鍵を使う
Unityのパッケージマネージャで、githubなどのプライベートリポジトリを使えるようになりましたが、git@github.com:user/repo.git
のようなSSH形式でパスフレーズ付きの秘密鍵を使うとエラーになるので対策を調べてみました。
方法は以下のサイトに書いてある通りなので、英語が読める方はこの記事の通りに進めれば大丈夫です。WindowsとMacの対策方法が記載されています。
概要としては、OpenSSHのサービスを起動し、パスフレーズ付きの秘密鍵を追加してUnityから実行可能にする設定を行います。
以下の環境で試してみました。
- Windows10
- UnityHub 3.0.0-beta4
- Unity2020.3.17f1
- Git for Windowsをインストールしている
- Windows10標準のOpenSSHがインストールされていることを確認する
無ければインストールしてください。
-
%PATH%
環境変数にOpenSSHが存在することを確認する
システム環境変数を開きC:\WINDOWS\System32\OpenSSH\
というようなOpenSSHのパスが登録されていることを確認します。
Git for Windowsを入れている場合は、Git for Windowsのパスよりも前にOpenSSHのパスを置く必要があるようです。
- PowerShellを管理者権限で起動し、以下のコマンドを入力する
Get-Service ssh-agent | Set-Service -StartupType Automatic
ssh-agent
- SSH鍵を追加する
PowerShellで以下のコマンドを入力します。
ssh-add
パスフレーズを聞かれるので入力します。
鍵の名前をデフォルトから変更している場合は、鍵名を指定します。
ssh-add <your-secure-ssh-key-name>
鍵の名前を忘れた場合は、以下のコマンドで鍵を指定します。
ssh-add -l
- Git for Windowsを入れている場合は、WindowsのOpenSSHを使うように環境変数を変更する
[Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)
完了まで少し時間がかかるようです。
- UnityHubとUnityを再起動する
アプリを再起動すれば大丈夫そうですが、私の環境では、PCごと再起動しないとうまく反映されないようでした。
これで、プライベートリポジトリに置いたUnityパッケージを、パッケージマネージャから取得できるようになります。なかなか情報が少なくて調べるのに苦労しましたw
Discussion