60

私のローカルラップトップはMacです。

  1. ssh キーが正しく構成されている。これは ~/.ssh/config の内容です
Host barthea
Hostname git-codecommit.us-east-1.amazonaws.com
User AVVVVVVVVVVVVVVVVVQ
IdentityFile ~/.ssh/aws-aws.pem

ssh barthea を実行すると取得されます

You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-east-1.amazonaws.com closed by remote host.
  1. パスワードとアクセスキーを備えた IAM ユーザー bruce666 を作成し、このユーザーを「チーム」グループの一部にしました。次に、「AWSCodeCommitPowerUsers」を含むポリシーを作成し、このポリシーを「チーム」に割り当てました。そして最後に bruce666 を「チーム」に割り当てました。この時点で、bruce666 は管理コンソールを介して CodeCommit の任意のリポジトリにアクセスできます。

  2. 私はaws config --profile bruce666を実行し、彼のアクセスと秘密鍵、彼のリージョンを入力し、json でフォーマットを指定しました。この時点で、aws codecommit get-repository --repository-name rekha --profile bruce666を実行して、CodeCommmit で rekha リポジトリを作成できました。

  3. いくつかのダミー ファイルを作成し、git initgit add を実行できます。git commit -m "1"git add origin https://git-gitcode.amzonaws.com/repos/v1/rekhagit push -u origin masterで、その操作は成功します。

  4. ただし、git clone ssh://git-gitcode.amazonaws.com/repos/v1/rekhaを実行すると、「致命的: 'https://git-codecommit.us-east-1.amazonaws. com/v1/repos/barthia/': 要求された URL がエラーを返しました: 403"

4

15 に答える 15

13

この役立つテキストは、codecommit および Windows 統合に関する AWS ドキュメントにあります。

Git for Windows のインストールに Git Credential Manager ユーティリティが含まれている場合、最初の数回の接続試行後に、403 エラーが表示されるか、Credential Manager ユーティリティに資格情報を提供するように求められます。この問題を解決する最も信頼できる方法は、AWS CodeCommit と互換性がないため、Git Credential Manager ユーティリティのオプションを使用せずに Git for Windows をアンインストールしてから再インストールすることです。

Git Credential Manager ユーティリティを保持したい場合は、追加の設定手順を実行して AWS CodeCommit も使用する必要があります。これには、.gitconfig ファイルを手動で変更して、AWS CodeCommit への接続時に AWS CodeCommit の認証情報ヘルパーの使用を指定することも含まれます。

Credential Manager ユーティリティから保存されているすべての資格情報を削除します (このユーティリティはコントロール パネルにあります)。

保存されている認証情報をすべて削除したら、次を .gitconfig ファイルに追加して保存し、新しいコマンド プロンプト ウィンドウから再度接続を試みます。

[credential "https://git-codecommit.us-east-1.amazonaws.com"]
    helper = !aws codecommit credential-helper $@
    UseHttpPath = true

さらに、すべての接続が期待どおりに機能する前に、 --global または --local の代わりに --system を指定して、git config 設定を再構成する必要がある場合があります。

この最後の部分は私の状況に当てはまりましたが、 git config --system を実行すると期待どおりに機能せず、aws codecommit コマンドの前に aws configure が追加されました。

そのため、システムの構成ファイルの場所を見つけるために、これを git で実行する必要がありました。

git config --list --show-origin

次に、AWS から提案されたセクションを c:/users/username/.gitconfig ファイルと c:/ProgramData/Git/config ファイルの両方に追加しました。

その後、 git push が機能し始めました-応答の前に偽のエラーが表示されますが

"git: 'credential-aws' is not a git command. See 'git --help'."
于 2016-07-27T16:20:21.830 に答える
7

以下のコマンドを実行した後、この問題を解決するには、以下のポリシーを IAM ユーザーに追加する必要がありました。参照

git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true

ポリシー:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:*"
            ],
            "Resource": "*"
        }
    ]
}
于 2019-08-16T00:49:49.243 に答える