0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

タカシAdvent Calendar 2022

Day 5

SourceTreeでサブのアカウントからクローンができない時

Posted at

今回の問題

メインとは別にサブのGithubのアカウントのssh接続をターミナルでテストも行い、いざSourceTreeでcloneしようとすると、接続先の公開鍵の権限が拒否されて、リモートリポジトリの読み取りのエラーが出ました。
スクリーンショット 2022-12-07 17.10.30.png

原因

今回の原因はSourceTreeでは「最初に接続したアカウントのSSHキーを、デフォルトで次に接続するアカウントも使用するようになってしまっている。」ことにあります。なのでGitHubのアカウントに紐づいたSSHキーではないためエラーになっている状態です。
私がSourceTreeに最初に接続したアカウントはメインで使っていたアカウントなので、そのアカウントからサブのリポジトリにssh接続しようとしていたことが原因でした。

解決策

では、どのように複数のアカウントでcloneするのかですが、やるべきことが二つあります。

  • /Users/ユーザー名/.sshの配下にあるconfigファイルに設定を追加
  • リモート接続のパスの書き換え

/Users/ユーザー名/.sshの配下にあるconfigファイルに設定を追加

/Users/ユーザー名/.ssh配下にあるconfigファイルの接続したいアカウントに、「IdentitiesOnly yes」という記述を追加します。

/Users/ユーザー名/.ssh/config
Host sample-GitHub-sub  // Host名
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/sample-GitHub-sub
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes  // この記述を追加

これはGitHubのホストごとに、指定された秘密鍵のみを使用する設定になります。

リモート接続のパスの書き換え

GitHubのリポジトリ画面に表示されるSSHのパスは、
git@github.com:[GitHubユーザ名]/[リポジトリ名].gitこのような形式になっています。
スクリーンショット 2022-12-07 4.58.51.png
しかしこれではローカルPCのHost名は「sample-GitHub-sub」になっているため、.sshのconfig設定の情報とは異なります。
なのでHost名:Githubユーザー名/リポジトリ名.gitの形式に変えてあげましょう。
今回だったらsample-GitHub-sub:Githubユーザー名/sourcetree-test-sub.gitですね。
この設定を行いようやくcloneすることができました。

最後に

独学中はSourceTreeの存在など知らなかったのですが、知った時は本当に感動しました。
記事の感想や意見、ご指摘等いただけると助かります。
最後までご覧いただき、ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?