19

github.com からプライベート リポジトリを EC2 の開発インスタンスにチェックアウトしようとしています。

$ git clone git@github.com:Org/Product.git
Initialized empty Git repository in /home/ec2-user/Product/.git/
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

どうすればいいですか?SSH転送も試しましたが、うまくいきませんでした。

4

3 に答える 3

20

Git アカウントに関連付ける SSH キー (2 つのファイル - 世界と共有する公開キーと安全に保管する秘密キー) を生成する必要があります。これにより、ユーザー名とパスワードを手動で入力したり、(さらに悪いことに) スクリプトを使用するときにパスワードをクリアテキストで入力したりすることなく、EC2 インスタンスで Git リポジトリのクローンを作成できます。

ローカル ディレクトリで SSH キーを生成し、EC2 インスタンスにコピーできます。EC2 インスタンスで直接行うこともできますが、新しいインスタンスで SSH キー ペアを生成するたびに、毎回新しいキーを GitHub に登録する必要があります。

  1. ローカル ターミナルで SSH キーを作成し、電子メール アドレスを置き換えます。

    $ ssh-keygen -t rsa -b 4096 -C [your email address]
    
  2. キーをデフォルト ディレクトリ ~/.ssh に保存します。

  3. 選択したパスフレーズを入力します。

  4. ディレクトリに移動し、「ls -l id_rsa*」と入力して、公開鍵と秘密鍵が /.ssh にあることを確認します。「id_rsa.pub」という名前の公開鍵と「id_rsa」という名前の秘密鍵の 2 つのファイルが表示されます</p>

  5. ターミナルから、この秘密鍵が公開されていないことを確認してください。

    $ chmod 600 ~/.ssh/id_rsa
    
  6. SSH 秘密鍵を ssh-agent に追加し、パスフレーズをキーチェーンに保存します。

    $ ssh-add -k ~/.ssh/id_rsa
    
  7. GitHub アカウントの設定に移動し、[SSH キー] と [新しい SSH キー] をクリックします。

  8. ターミナルで、公開鍵をクリップボードにコピーします。または EC2 ターミナルに表示します。

    $ pbcopy < ~/.ssh/id_rsa.pub   # copy to clipboard
    $ cat ~/.ssh/id_rsa.pub  # If you prefer appear on screen
    
  9. これを GitHub のキー ボックスに貼り付けて、[保存] をクリックします。このキーは、すべての Git リポジトリで利用できます。

  10. 場合によっては、公開鍵を「/.ssh/authorized_keys」に移動して、公開鍵を LINUX で機能させる必要があります。

    $ mkdir ~/.ssh  # if you don't have /.ssh/ folder
    $ chmod 700 ~/.ssh
    $ touch ~/.ssh/authorized_keys
    $ chmod 600 ~/.ssh/authorized_keys
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
  11. この記事https://help.github.com/articles/error-permission-denied-publickey/に従って、キーが機能するかどうかを確認し、デバッグしてください。

于 2018-07-29T20:40:04.387 に答える
0

この回答を参照してください。

https://help.github.com/articles/generating-ssh-keysの説明に従って、GitHub で認証するための公開鍵と秘密鍵を設定するだけです。

于 2013-10-27T00:19:25.777 に答える