Memecahkan masalah pembantu kredenal dan koneksi ke HTTPS AWS CodeCommit - AWS CodeCommit

AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah pembantu kredenal dan koneksi ke HTTPS AWS CodeCommit

Informasi berikut dapat membantu Anda memecahkan masalah umum saat Anda menggunakan pembantu kredenal yang disertakan dengan AWS CLI dan HTTPS untuk terhubung ke repositori. CodeCommit

catatan

Meskipun pembantu kredenal adalah metode yang didukung untuk menghubungkan CodeCommit menggunakan akses federasi, penyedia identitas, atau kredensi sementara, metode yang disarankan adalah menginstal dan menggunakan utilitas. git-remote-codecommit Untuk informasi selengkapnya, lihat Langkah-langkah penyiapan untuk koneksi HTTPS keAWS CodeCommitbersamagit-remote-codecommit.

Saya menerima galat saat menjalankan perintah git config untuk mengkonfigurasi pembantu kredensial

Masalah: Ketika Anda mencoba menjalankan perintah git config untuk mengonfigurasi pembantu kredenal untuk berkomunikasi dengan CodeCommit repositori, Anda melihat kesalahan bahwa ada terlalu sedikit argumen, atau prompt penggunaan yang menyarankan perintah dan sintaks konfigurasi Git.

Perbaikan yang dimungkinkan: Alasan paling umum untuk kesalahan ini adalah bahwa tanda kutip tunggal digunakan untuk perintah pada sistem operasi Windows, atau tanda kutip ganda digunakan untuk perintah dalam sistem operasi Linux, MacOS, atau Unix. Sintaks yang benar adalah sebagai berikut:

  • Windows: git config --global credential.helper "!aws codecommit credential-helper $@"

  • Linux, macOS, atau Unix: git config --global credential.helper '!aws codecommit credential-helper $@'

Saya melihat kesalahan saat membaca nama pengguna saat mencoba mengkloning repositori

Masalah: Saat Anda mencoba mengkloning repositori menggunakan pembantu kredenal, Anda melihat kesalahan yang menyatakan bahwa sistem tidak dapat membaca nama pengguna untuk repositori. URL

Kemungkinan perbaikan: Alasan paling umum untuk kesalahan ini adalah bahwa file.gitconfig tidak dibuat atau dikonfigurasi dengan benar di komputer Anda. Buka file.gitconfig Anda dan pastikan bahwa pembantu kredenal disetel dengan benar. Jika Anda menggunakan komputer yang menjalankan Linux, macOS, atau Unix, pastikan juga bahwa nilai diatur dengan benar untuk sistem Anda. $HOME

Saya mendapatkan perintah tidak ditemukan kesalahan di Windows saat menggunakan pembantu kredensial

Masalah: Setelah memperbarui AWS CLI, koneksi pembantu kredenal ke CodeCommit repositori gagal. aws codecommit credential-helper $@ get: aws: command not found

Penyebab: Alasan paling umum untuk kesalahan ini adalah bahwa AWS CLI versi Anda telah diperbarui ke versi yang menggunakan Python 3. Ada masalah yang diketahui dengan MSI paket tersebut. Untuk memverifikasi apakah Anda memiliki salah satu versi yang terpengaruh, buka baris perintah dan jalankan perintah berikut: aws --version

Jika versi Python output dimulai dengan 3, Anda memiliki versi yang terpengaruh. Sebagai contoh:

aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52

Perbaikan yang dimungkinkan: Anda dapat mengatasi masalah ini dengan melakukan salah satu hal berikut:

  • Instal dan konfigurasikan AWS CLI pada Windows menggunakan Python dan pip alih-alih. MSI Untuk informasi selengkapnya, lihat Menginstal Python, pip, dan di Windows. AWS CLI

  • Mengedit secara manual file .gitconfig Anda untuk mengubah bagian [credential] untuk secara eksplisit menunjuk ke aws.cmd di komputer lokal Anda. Sebagai contoh:

    [credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
  • Jalankan git config perintah untuk memperbarui .gitconfig file Anda ke referensi eksplisitaws.cmd, dan perbarui variabel PATH lingkungan Anda secara manual untuk menyertakan jalur ke perintah sesuai kebutuhan. Sebagai contoh:

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

Saya diminta untuk nama pengguna ketika saya terhubung ke repositori CodeCommit

Masalah: Ketika Anda mencoba menggunakan pembantu kredenal untuk berkomunikasi dengan CodeCommit repositori, sebuah pesan muncul meminta Anda untuk nama pengguna Anda.

Kemungkinan perbaikan: Konfigurasikan AWS profil Anda atau pastikan profil yang Anda gunakan adalah profil yang Anda konfigurasikan untuk CodeCommit dikerjakan. Untuk informasi lebih lanjut tentang pengaturan, lihat Langkah-langkah pengaturan untuk koneksi HTTPS ke AWS CodeCommit di Linux, macOS, atau Unix dengan pembantu kredensial AWS CLI, atau Langkah pengaturan untuk koneksi HTTPS ke repositori AWS CodeCommit pada Windows dengan pembantu kredensial AWS CLI. Untuk informasi selengkapnya tentangIAM, kunci akses, dan kunci rahasia, lihat Mengelola Kunci Akses untuk IAM Pengguna dan Bagaimana Cara Mendapatkan Kredensi?

Git untuk macOS: Saya mengkonfigurasi pembantu kredensial dengan sukses, tapi sekarang saya menolak akses ke repositori saya (403)

Masalah: Di macOS, pembantu kredensial sepertinya tidak mengakses atau menggunakan kredensial Anda seperti yang diharapkan. Hal ini dapat disebabkan oleh dua masalah yang berbeda:

  • AWS CLI Ini dikonfigurasi untuk yang Wilayah AWS berbeda dari tempat repositori ada.

  • Keychain Access telah menyimpan kredensial yang telah kedaluwarsa.

Kemungkinan perbaikan: Untuk memverifikasi apakah AWS CLI dikonfigurasi untuk wilayah yang benar, jalankan aws configure perintah, dan tinjau informasi yang ditampilkan. Jika CodeCommit repositori Wilayah AWS berbeda dari yang ditampilkan untuk AWS CLI, Anda harus menjalankan aws configure perintah dan mengubah nilai menjadi yang sesuai untuk Wilayah itu. Untuk informasi selengkapnya, lihat Langkah 1: Konfigurasi awal untukCodeCommit.

Versi default Git yang dirilis di OS X dan macOS menggunakan utilitas Keychain Access untuk menyimpan kredensial yang dihasilkan. Untuk alasan keamanan, kata sandi yang dihasilkan untuk akses ke CodeCommit repositori Anda bersifat sementara, sehingga kredensi yang disimpan di gantungan kunci berhenti berfungsi setelah sekitar 15 menit. Jika Anda hanya mengakses Git dengan CodeCommit, coba yang berikut ini:

  1. Di Terminal, jalankan perintah git config untuk menemukan file konfigurasi Git (gitconfig) dimana utilitas Keychain Access didefinisikan. Tergantung pada sistem dan preferensi lokal Anda, Anda mungkin memiliki lebih dari satu file gitconfig.

    git config -l --show-origin | grep credential

    Dalam output dari perintah ini, mencari hasil yang mirip dengan:

    file:/path/to/gitconfig credential.helper=osxkeychain

    File yang tercantum di awal baris ini adalah file konfigurasi Git yang harus Anda edit.

  2. Untuk mengedit file konfigurasi Git, gunakan editor teks biasa atau jalankan perintah berikut:

    nano /usr/local/git/etc/gitconfig
  3. Modifikasi konfigurasi menggunakan salah satu strategi berikut:

    • Komentari atau hapus bagian kredensial yang berisi helper = osxkeychain. Sebagai contoh:

      # helper = osxkeychain
    • Perbarui bagian pembantu kredensial aws credential helper dan osxkeychain untuk memiliki konteks. Misalnya, jika osxkeychain digunakan untuk mengautentikasi ke GitHub:

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

      Dalam konfigurasi ini, Git akan menggunakan pembantu osxkeychain ketika host remote cocok dengan "https://github.com" dan pembantu kredensial saat host remote cocok dengan "https://git-codecommit\.us-east-1\.amazonaws.com".

    • Sertakan pembantu string kosong sebelum pembantu kredensial. Misalnya, untuk tidak menggunakan osxkeychain helper saat menggunakan profil bernama CodeCommitProfile denganCLI:

      [credential] helper = helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true
      Tip

      Anda juga dapat mengonfigurasi baris mengikuti baris pembantu string kosong agar tidak cocok CodeCommit jika Anda ingin mengecualikan semua profil:

      helper = !aws codecommit credential-helper $@

    Atau, jika Anda ingin terus menggunakan utilitas Keychain Access untuk cache kredensial untuk repositori Git lainnya, modifikasi header bukannya mengomentari keluar garis. Misalnya, untuk mengizinkan kredensi yang di-cache GitHub, Anda dapat memodifikasi header sebagai berikut:

    [credential "https://github.com"] helper = osxkeychain

Jika Anda mengakses repositori lain dengan Git, Anda dapat mengkonfigurasi utilitas Akses Rantai Kunci sehingga tidak menyediakan kredensi untuk repositori Anda. CodeCommit Untuk mengkonfigurasi utilitas Keychain Access:

  1. Buka utilitas Keychain Access. (Anda dapat menggunakan Finder untuk menemukannya.)

  2. Cari git-codecommit.us-east-2.amazonaws.com dan ganti us-east-2 dengan Wilayah AWS tempat repositori ada. Sorot baris, buka menu konteks (klik kanan), lalu pilih Dapatkan Info.

  3. Pilih tab Kontrol akses.

  4. Dalam Konfirmasi sebelum mengizinkan akses, pilih git-credential-osxkeychain, lalu pilih tanda minus untuk menghapusnya dari daftar.

    catatan

    Setelah menghapus git-credential-osxkeychain dari daftar, Anda melihat kotak dialog setiap kali Anda menjalankan perintah Git. Pilih Tolak untuk melanjutkan. Jika menurut Anda pop-up terlalu mengganggu, berikut adalah beberapa alternatif:

Jika Anda ingin menghentikan Git dari menggunakan utilitas Keychain Access sepenuhnya, Anda dapat mengkonfigurasi Git untuk berhenti menggunakan osxkeychain sebagai pembantu kredensial. Misalnya, jika Anda membuka terminal dan menjalankan perintah git config --system credential.helper, dan menjawab osxkeychain, Git diatur untuk menggunakan utilitas Keychain Access. Anda dapat mengganti ini dengan menjalankan perintah berikut:

git config --system --unset credential.helper

Ketahuilah bahwa dengan menjalankan perintah ini dengan --system opsi mengubah perilaku Git di seluruh sistem untuk semua pengguna, dan ini mungkin memiliki konsekuensi yang tidak diinginkan untuk pengguna lain, atau untuk repositori lain jika Anda menggunakan layanan repositori lain sebagai tambahan. CodeCommit Juga diketahui bahwa pendekatan ini mungkin memerlukan penggunaan sudo, dan akun Anda mungkin tidak memiliki izin sistem yang memadai untuk menerapkan perubahan ini. Pastikan untuk memverifikasi bahwa perintah diterapkan berhasil dengan menjalankan perintah git config --system credential.helper lagi. Untuk informasi selengkapnya, lihat Kustomisasi Git - Konfigurasi Git dan artikel ini di Stack Overflow.

Git untuk Windows: Saya menginstal Git untuk Windows, tetapi akses saya ke repositori saya ditolak (403)

Masalah: Pada Windows, pembantu kredensial tampaknya tidak mengakses atau menggunakan kredensial Anda seperti yang diharapkan. Hal ini dapat disebabkan oleh masalah yang berbeda:

  • AWS CLI Ini dikonfigurasi untuk yang Wilayah AWS berbeda dari tempat repositori ada.

  • Secara default, Git untuk Windows menginstal utilitas Git Credential Manager yang tidak kompatibel dengan CodeCommit koneksi yang menggunakan pembantu AWS kredensi. Ketika diinstal, itu menyebabkan koneksi ke repositori gagal meskipun pembantu kredenal telah diinstal dengan AWS CLI dan dikonfigurasi untuk koneksi ke. CodeCommit

  • Beberapa versi Git untuk Windows mungkin tidak sepenuhnya sesuai dengan RFC2617 dan RFC4559, yang berpotensi menyebabkan masalah dengan kredensi Git dan pembantu kredensi yang disertakan dengan. AWS CLI Untuk informasi lebih lanjut, lihat Versi 2.11.0(3) tidak meminta nama pengguna/kata sandi.

Kemungkinan perbaikan:

  • Jika Anda mencoba untuk menggunakan pembantu kredenal yang disertakan dengan AWS CLI, pertimbangkan untuk menghubungkan dengan kredensi Git HTTPS daripada menggunakan pembantu kredensi. Kredensi Git yang dikonfigurasi untuk IAM pengguna Anda kompatibel dengan Git Credential Manager untuk Windows, tidak seperti pembantu kredensi untuk. AWS CodeCommit Untuk informasi selengkapnya, lihat Untuk pengguna HTTPS menggunakan kredensials Git.

    Jika Anda ingin menggunakan pembantu kredenal, untuk memverifikasi apakah AWS CLI sudah dikonfigurasi untuk yang benar Wilayah AWS, jalankan aws configure perintah, dan tinjau informasi yang ditampilkan. Jika CodeCommit repositori Wilayah AWS berbeda dari yang ditampilkan untuk AWS CLI, Anda harus menjalankan aws configure perintah dan mengubah nilai menjadi yang sesuai untuk Wilayah itu. Untuk informasi selengkapnya, lihat Langkah 1: Konfigurasi awal untukCodeCommit.

  • Jika memungkinkan, uninstall dan instal ulang Git untuk Windows. Ketika Anda menginstal Git untuk Windows, kosongkan kotak centang untuk opsi untuk menginstal utilitas Git Credential Manager. Credential manager ini tidak kompatibel dengan pembantu kredensial untuk AWS CodeCommit. Jika Anda menginstal Git Credential Manager atau utilitas manajemen kredensi lainnya dan Anda tidak ingin menghapusnya, Anda dapat memodifikasi .gitconfig file Anda dan menambahkan manajemen kredensi untuk: CodeCommit

    1. Buka Control Panel, pilih Credential Manager, dan hapus semua kredensialnya yang tersimpan. CodeCommit

    2. Buka file .gitconfig Anda dalam editor teks biasa, seperti Notepad.

      catatan

      Jika Anda bekerja dengan beberapa profil Git, Anda mungkin memiliki file .gitconfig lokal dan global. Pastikan untuk mengedit file yang sesuai.

    3. Tambahkan bagian berikut ke file .gitconfig Anda:

      [credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
    4. Simpan file, dan kemudian buka sesi baris perintah baru sebelum Anda mencoba untuk terhubung lagi.

    Anda juga dapat menggunakan pendekatan ini jika Anda ingin menggunakan pembantu kredenal AWS CodeCommit ketika Anda terhubung ke repositori dan sistem manajemen kredensi lain ketika Anda terhubung ke CodeCommit repositori lain yang dihosting, seperti repositori. GitHub

    Untuk me-reset pembantu kredensial mana yang digunakan sebagai default, Anda dapat menggunakan opsi --system bukan --global atau --local ketika Anda menjalankan perintah git config.

  • Jika Anda menggunakan kredensi Git di komputer Windows, Anda dapat mencoba mengatasi masalah RFC ketidakpatuhan apa pun dengan memasukkan nama pengguna kredensi Git Anda sebagai bagian dari string koneksi. Misalnya, untuk mengatasi masalah dan mengkloning repositori bernama MyDemoRepo di Wilayah Timur AS (Ohio):

    git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
    catatan

    Pendekatan ini tidak bekerja jika Anda memiliki karakter @ dalam nama pengguna kredensial Git Anda. Anda harus URL -encode (juga dikenal sebagai URL escaping atau percent-encoding) karakter.