43

私にはホストがいます、それを呼んでrobください。ssh-keygenを使用しrobて公開鍵を取得しました。公開鍵は、リポジトリの新しいデプロイ鍵の追加画面でgithubに渡しましたcheechchong今、私も展開したいと思いrobます。しかし、githubのリポジトリに新しいデプロイキーを追加する画面に移動し、chongそこに生成した公開キーを貼り付けると、と表示されrobますkey already in usechongキーが使用されていれば、クローンを作成できると思いましrobたが、それは許可が拒否されたことを示しています。

明らかに、これは私が思っていたよりも複雑で、複数のキーなどが必要です。chongクローンを作成するにはどうすればよいrobですか?

4

10 に答える 10

71

キーがデプロイ キーとして 1 つのリポジトリにアタッチされると、別のリポジトリでは使用できません。デプロイ キーの設定中にこのエラーが発生した場合は、リモートを変更し、 ssh が正しい ssh を選択するために使用できる、存在しない~/.ssh/configgithub.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.
于 2012-10-03T09:04:46.137 に答える
12

私が見つけた最も簡単な解決策は、ここで概説されています。

1) 次のコマンドを入力します (必要な数のキーに対してこれを行います):

ssh-keygen -t rsa -C "your_email@example.com"

2) 以下のステートメントでプロンプトが表示されたら、一意の名前 (つまり、foo1_rsa) を入力します。ファイルは現在のディレクトリに作成されます。整理したい場合は、ファイルを .ssh に移動する必要がある場合があります。

キーを保存するファイルを入力してください (/Users/you/.ssh/id_rsa): [Enter キーを押します]

3) SSH 構成ファイルを更新します。

vi ~/.ssh/config

空かもしれません:

Host cheech github.com
Hostname github.com
IdentityFile ~/.ssh/foo1_rsa

Host chong github.com
Hostname github.com
IdentityFile ~/.ssh/foo2_rsa
于 2014-01-15T05:59:04.520 に答える
3

githubのデプロイキーは一意です...他のリポジトリの新しいキーを生成する必要があります。ssh-keygenをもう一度実行するだけです

これについては、githubのドキュメントを参照してください:https ://help.github.com/articles/managing-deploy-keys

于 2012-07-25T21:44:42.023 に答える
2

GitHub アカウント内のすべてのプライベート リポジトリへのアクセスをrob許可することに抵抗がない場合は、キーをデプロイ キーとして削除し、cheechそれを SSH キーとして GitHub アカウント全体に追加することができます。これにより、と の両方にrobアクセスできます。cheechchong

robアカウントにアクセスしたくない他のリポジトリがある場合、これは機能しません。

より細かい制御が必要な場合は、追加のキーを生成しrobて、特定のリポジトリへのデプロイ キーとして割り当てる必要があります。

于 2012-08-02T18:59:42.027 に答える