すでにあるGitHubリポジトリにpushする設定になっているディレクトリを別のアカウントのリポジトリにSSHキーで接続しようと思いあれこれ試行錯誤。
備忘録として書いておきます。
1. ターミナルを開き、~/.sshディレクトリに移動します。
$ cd ~/.ssh
2. SSHキーの生成
まず、新しいSSHキーを生成します。ターミナルを開き、以下のコマンドを実行します:
$ cd ~/.ssh
$ ssh-keygen -t ed25519 -C "your_new_email@example.com"
このコマンドを実行するとキーの保存場所を尋ねられるので、ここでは new-github_ed25519 を指定します。
3. SSH公開キーをGitHubに登録
次に、生成したSSH公開キーをGitHubに登録します。これはGitHubのWebサイトから行います。
GitHubのアカウント設定ページに行き、「SSH and GPG keys」セクションに移動し、「New SSH key」をクリックします。タイトルには任意の名前を入力し、Keyフィールドには生成した公開キー(new-github_ed25519.pubの内容)をコピー&ペーストします。その後、「Add SSH key」をクリックします。
4. SSH設定ファイルを編集
~/.ssh/configファイルに新しいエントリを追加します。このエントリでは、GitHubに接続するためのホスト名、ユーザー名、そして新しく生成したSSHキーを使用するように指定します。
Host new-github
HostName github.com
IdentityFile ~/.ssh/knew-github_ed25519
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
5. リポジトリのリモート設定を変更
既存のプロジェクトディレクトリに移動し、gitリポジトリのリモート設定を新しく生成したSSHキーを使用するように変更します。
$ cd path_to_your_project
$ git remote set-url origin new-github:username/repository.git
ここで username/repository.git はあなたの新しいGitHubアカウントのユーザー名とリポジトリ名に置き換えてください。
以上の手順により、新しいアカウントでそのリポジトリにアクセスし、git pushやgit pullといった操作を行うことができます。また、新しいSSHキーを使って新しいリポジトリをcloneすることもできます。その際には以下のようなコマンドを使用します:
$ git clone new-github:username/repository.git