2017-07-02 8 views
0

私のAmazon EC2インスタンスに格納されているリモートgit repoにプッシュできません。SSHをサーバーに入れることはできますがgit pushはできません

Host ec2 
    HostName ec2-54-89-205-210.compute-1.amazonaws.com 
    User ec2-user 
    IdentityFile ~/.ssh/ec2TestB 

そして私は、コマンドssh ec2を実行することができますし、私は成功しec2に接続します:

私のローカルsshconfigファイルは次のようになりますホストエントリがあります。

次に、testGitRootというrootフォルダのec2git repoを作成しました。ローカルマシンでtestGitLocalというgit repoを作成しました。次に、ec2repogit remote add origin [email protected]e-1.amazonaws.com:/root/testGitRootと追加します(これは、[email protected]の部分がなくても試してみました。

ビット私はgit push origin masterを実行したときに私が手:

Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

は、だから私の質問は、私がここで何概念をしないのですか?私がssh ec2とsshで接続できるのであれば、なぜ私のレポをプッシュできないのですか?私にはっきりしないことの1つは、sshを利用しても、正確にgitセットアップのステップを実行したことです。通常、私はいつもgithubに向かっています。この場合、私はssh URLを取得し、それを私のリモートとして設定します。この場合、私はちょうどそのURLがちょうどec2Domain:path/to/git/repoである私のec2repoをリモートとして設定しています。だから私もgit push origin masterが使用されている場合はssh ec2コマンドがないと公開鍵をフェイルオーバーしているように見えるのですか?

答えて

1

あなたssh_configファイルに示すようにあなたは、ユーザーec2-userを使用してリポジトリを設定:

Host ec2 
    User ec2-user 

をしかし、あなたは別のユーザー名を使用するようにリモートを設定し、ec2user

git remote add origin [email protected] ... 

あなたはsshが動作すると言いますが、gitは動作しません。したがって、gitはユーザー名が間違っている可能性があります。

git remote set-url origin \ 
    [email protected]:/root/testGitRoot 
1

このエラーメッセージは、認証に失敗したことを意味します。

  • 間違ったキーを使用して接続しようとすると:

    これらはそれを引き起こす可能性があります一般的な理由です。このインスタンスがこの鍵ペアを使用していますか?

  • 間違ったユーザー名で接続しようとしています。 ubuntuはUbuntuベースのAWSディストリビューションのユーザ名ですが、他の人にはec2-user(または一部のDebianではadmin
  • 間違ったホストを接続しようとしています。それはあなたがログインしようとしている正しいホストですか?

EC2インスタンスの/home/<username>/.ssh/authorized_keysファイルが壊れていると、1.も発生します。

約2.どのユーザー名を使用するべきかについての情報は、AMIイメージの説明に欠けていることがよくあります。しかし、AWS EC2のドキュメントでいくつかを見つけることができます。

箇条書き4。:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

+0

私はCentOSのAMIは、私は、ユーザーが 'ec2user'であることを確信している(と思う)使用しています:それは右のユーザ名を持っているので、それを修正する

は、単にリモートURLを変更します。私は 'git remote add origin 'に 'user @'の構文が必要かどうか確信がありませんでした。基本的には ''ですか? 「 @ '?また、どのキーペアが正しいか分かりません。私はgit repの両方をセットアップして、単純にリモートをドメイン名の起点として追加しました。私が私の質問で言ったように、私はそのsshを使用しているのかどうかはわかりません。 –

+0

'git remote add origin $ URL'です。 ssh-type URLを使うとgitはsshを使います。 [git URLs](https://git-scm.com/docs/git-fetch#_git_urls_a_id_urls_a)を参照してください。 – phd

関連する問題