

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 HTTPS ke AWS CodeCommit
<a name="troubleshooting-ch"></a>

Informasi berikut dapat membantu Anda memecahkan masalah umum ketika 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 ke AWS CodeCommit dengan git-remote-codecommit](setting-up-git-remote-codecommit.md).

**Topics**
+ [Saya menerima galat saat menjalankan perintah `git config` untuk mengkonfigurasi pembantu kredensial](#troubleshooting-os-syn1)
+ [Saya melihat kesalahan saat membaca nama pengguna saat mencoba mengkloning repositori](#troubleshooting-gitconfig1)
+ [Saya mendapatkan perintah tidak ditemukan kesalahan di Windows saat menggunakan pembantu kredensial](#troubleshooting-py3)
+ [Saya diminta untuk nama pengguna ketika saya terhubung ke repositori CodeCommit](#troubleshooting-ae1)
+ [Git untuk macOS: Saya mengkonfigurasi pembantu kredensial dengan sukses, tapi sekarang saya menolak akses ke repositori saya (403)](#troubleshooting-macoshttps)
+ [Git untuk Windows: Saya menginstal Git untuk Windows, tetapi akses saya ke repositori saya ditolak (403)](#troubleshooting-windowshttps)

## Saya menerima galat saat menjalankan perintah `git config` untuk mengkonfigurasi pembantu kredensial
<a name="troubleshooting-os-syn1"></a>

**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
<a name="troubleshooting-gitconfig1"></a>

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

**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
<a name="troubleshooting-py3"></a>

**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 versi AWS CLI Anda telah diperbarui ke versi yang menggunakan Python 3. Ada masalah yang diketahui dengan paket MSI. 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. 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](https://docs.aws.amazon.com/cli/latest/userguide/install-windows.html#awscli-install-windows-pip)
+ Mengedit secara manual file `.gitconfig` Anda untuk mengubah bagian `[credential]` untuk secara eksplisit menunjuk ke `aws.cmd` di komputer lokal Anda. Contoh:

  ```
  [credential]    
      helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ 
      UseHttpPath = true
  ```
+ Jalankan perintah **git config** untuk memperbarui file `.gitconfig` Anda untuk secara eksplisit merujuk `aws.cmd`, dan secara manual memperbarui variabel lingkungan PATH Anda untuk menyertakan path ke perintah yang diperlukan. 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
<a name="troubleshooting-ae1"></a>

**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 penyiapan untuk koneksi HTTPS ke AWS CodeCommit repositori di Linux, macOS, atau Unix dengan pembantu kredensi AWS CLI](setting-up-https-unixes.md), atau [Langkah-langkah penyiapan untuk koneksi HTTPS ke AWS CodeCommit repositori di Windows dengan pembantu kredenal AWS CLI](setting-up-https-windows.md). Untuk informasi selengkapnya tentang IAM, access key, dan secret key, lihat [Mengelola Access Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html) dan [Bagaimana Saya Mendapatkan Kredensial?](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Introduction.html#IAM_SecurityCredentials)

## Git untuk macOS: Saya mengkonfigurasi pembantu kredensial dengan sukses, tapi sekarang saya menolak akses ke repositori saya (403)
<a name="troubleshooting-macoshttps"></a>

**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 untuk CodeCommit](setting-up-https-unixes.md#setting-up-https-unixes-account).

 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.

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

   ```
   nano /usr/local/git/etc/gitconfig
   ```

1. Modifikasi konfigurasi menggunakan salah satu strategi berikut:
   + Komentari atau hapus bagian kredensial yang berisi `helper = osxkeychain`. 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* dengan CLI:

     ```
     [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 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.)

1. 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**.

1. Pilih tab **Kontrol akses**.

1. 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:  
Connect untuk CodeCommit menggunakan kredensi SSH atau Git, bukan bantuan kredensi dengan HTTPS. Untuk informasi selengkapnya, lihat [Untuk koneksi SSH di Linux, macOS, atau Unix](setting-up-ssh-unixes.md) dan [Pengaturan untuk pengguna HTTPS menggunakan kredensial Git](setting-up-gc.md). 
Dalam utilitas Keychain Access, pada tab **Kontrol Akses** untuk `git-codecommit.us-east-2.amazonaws.com`, pilih opsi **Izinkan semua aplikasi mengakses item ini (akses ke item ini tidak dibatasi)**. Hal ini mencegah pop-up, tetapi kredensialnya akhirnya berakhir (rata-rata, ini memakan waktu sekitar 15 menit) dan Anda kemudian melihat pesan kesalahan 403. Jika ini terjadi, Anda harus menghapus item keychain untuk memulihkan fungsionalitas.
Menginstal versi Git yang tidak menggunakan keychain secara default.
Pertimbangkan solusi penulisan untuk menghapus item keychain. Untuk melihat sampel solusi naskah yang dibuat oleh komunitas, lihat [Script Mac OS X untuk menghapus kredensial dalam cache secara berkala di Penyimpanan Sertifikat OS X](integrations.md#integrations-community-code) di [Integrasi produk dan layanan](integrations.md).

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](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration) dan [artikel ini di Stack Overflow](https://stackoverflow.com/questions/16052602/disable-git-credential-osxkeychain).

## Git untuk Windows: Saya menginstal Git untuk Windows, tetapi akses saya ke repositori saya ditolak (403)
<a name="troubleshooting-windowshttps"></a>

**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 [RFC 2617](https://tools.ietf.org/html/rfc2617#page-5) dan [RFC 4559](https://tools.ietf.org/html/rfc4559#page-2), yang berpotensi menyebabkan masalah dengan kredensial Git dan pembantu kredensialnya disertakan dengan AWS CLI. Untuk informasi lebih lanjut, lihat [Versi 2.11.0(3) tidak meminta nama pengguna/kata sandi](https://github.com/git-for-windows/git/issues/1034).

**Kemungkinan perbaikan:** 
+ Jika Anda mencoba menggunakan pembantu kredensi yang disertakan dengan AWS CLI, pertimbangkan untuk menghubungkan dengan kredensi Git melalui HTTPS alih-alih menggunakan pembantu kredensi. Git kredensials yang dikonfigurasi untuk pengguna IAM Anda kompatibel dengan Git Credential Manager untuk Windows, tidak seperti pembantu kredensial untuk AWS CodeCommit. Untuk informasi selengkapnya, lihat [Untuk pengguna HTTPS menggunakan kredensials Git](setting-up-gc.md). 

  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 untuk CodeCommit](setting-up-https-windows.md#setting-up-https-windows-account).
+ 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

  1. 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.

  1. Tambahkan bagian berikut ke file `.gitconfig` Anda:

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

  1. 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 kredensial Git pada komputer Windows, Anda dapat mencoba memecahkan setiap masalah ketidaksesuaian RFC dengan memasukkan nama pengguna kredensial Git Anda sebagai bagian dari string sambungan. Misalnya, untuk mengatasi masalah ini 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 mengkodekan URL (juga dikenal sebagai pelolosan URL atau [Pengkodean persen](https://en.wikipedia.org/wiki/Percent-encoding)) karakter.