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.
Topik
- Saya menerima galat saat menjalankan perintah git config untuk mengkonfigurasi pembantu kredensial
- Saya melihat kesalahan saat membaca nama pengguna saat mencoba mengkloning repositori
- Saya mendapatkan perintah tidak ditemukan kesalahan di Windows saat menggunakan pembantu kredensial
- Saya diminta untuk nama pengguna ketika saya terhubung ke repositori CodeCommit
- Git untuk macOS: Saya mengkonfigurasi pembantu kredensial dengan sukses, tapi sekarang saya menolak akses ke repositori saya (403)
- Git untuk Windows: Saya menginstal Git untuk Windows, tetapi akses saya ke repositori saya ditolak (403)
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 keaws.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:
-
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 filegitconfig
.git config -l --show-origin | grep credential
Dalam output dari perintah ini, mencari hasil yang mirip dengan:
file:/
path
/to
/gitconfig credential.helper=osxkeychainFile yang tercantum di awal baris ini adalah file konfigurasi Git yang harus Anda edit.
-
Untuk mengedit file konfigurasi Git, gunakan editor teks biasa atau jalankan perintah berikut:
nano /usr/local/git/etc/gitconfig
-
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
danosxkeychain
untuk memiliki konteks. Misalnya, jikaosxkeychain
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 bernamaCodeCommitProfile
denganCLI:[credential] helper = helper = !aws --profile
CodeCommitProfile
codecommit credential-helper $@ UseHttpPath = trueTip
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:
-
Buka utilitas Keychain Access. (Anda dapat menggunakan Finder untuk menemukannya.)
-
Cari
git-codecommit.
dan gantius-east-2
.amazonaws.com.rproxy.goskope.comus-east-2
dengan Wilayah AWS tempat repositori ada. Sorot baris, buka menu konteks (klik kanan), lalu pilih Dapatkan Info. -
Pilih tab Kontrol akses.
-
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 to CodeCommit using SSH or Git credentials, bukan bantuan kredensi dengan. HTTPS Untuk informasi selengkapnya, lihat Untuk koneksi SSH di Linux, macOS, atau Unix dan Pengaturan untuk pengguna HTTPS menggunakan kredensial Git.
-
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 di Integrasi produk dan layanan.
-
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
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-
Buka Control Panel, pilih Credential Manager, dan hapus semua kredensialnya yang tersimpan. CodeCommit
-
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. -
Tambahkan bagian berikut ke file
.gitconfig
Anda:[credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
-
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-repocatatan
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.