キーがデプロイ キーとして 1 つのリポジトリにアタッチされると、別のリポジトリでは使用できません。デプロイ キーの設定中にこのエラーが発生した場合は、リモートを変更し、
ssh が正しい ssh を選択するために使用できる、存在しない~/.ssh/config
github.com ホスト名を使用するようにファイルを設定する必要があります。リポジトリのキーをデプロイします。
# first we remove the origin
$ git remote -v
origin git@github.com:username/foo.git (fetch)
origin git@github.com:username/foo.git (push)
$ git remote rm origin
# here we add a new origin using a host nickname called
# foo.github.com that we will reference with a Host stanza in our
# ~/.ssh/config to specify which key to use with which fake hostname.
$ git remote add origin git@fake-hostname-foo.github.com:username/foo.git
$ git remote -v
origin git@fake-hostname-foo.github.com:username/foo.git (fetch)
origin git@fake-hostname-foo.github.com:username/foo.git (push)
リポジトリのデプロイ キーを生成し、次のような適切な名前を付けます。
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa-foo -C https://github.com/username/foo
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa-foo.
Your public key has been saved in /home/username/.ssh/id_rsa-foo.pub.
The key fingerprint is:
c0:ff:ee:34:24:11:5e:6d:7c:4c:b1:a0:de:ad:be:ef https://github.com/username/foo
The key's randomart image is:
+--[ RSA 2048]----+
| E o..o.oo. |
| M o o o .+CoW |
| + o = o. .. |
| . . + |
| S |
| o . |
| + |
| . o |
| ..o. |
+-----------------+
デプロイ キーを追加したら
、次のスタンザを~/.ssh/config
ファイル
に追加する必要があります。
Host fake-hostname-foo.github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa-foo
これで、次の方法でテストできます。
$ ssh -T git@fake-hostname-foo.github.com
Hi username! You've successfully authenticated, but GitHub
does not provide shell access.