Saya membuat repositori baru dan saya mengalami kesalahan aneh. Saya telah menggunakan Git sebelumnya di Bitbucket tapi saya baru saja diformat ulang dan sekarang saya tidak bisa membuat Git bekerja. Setelah melakukan komit, saya harus menambahkan email dan nama saya ke global, tetapi kemudian berkomitmen dengan baik.
Ketika saya mencoba menggunakan perintah
git push origin master
itu tidak bekerja. Saya menerima pesan ini:
$ 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.
Saya bingung di sini. Teman saya yang saya bagikan repositori ini, mengaksesnya dengan baik dan mendorongnya dengan baik, tapi sepertinya saya tidak bisa membuatnya berfungsi.
Jawaban:
Menulis ini untuk mereka yang baru memulai dengan Git dan BitBucket di Windows & yang tidak begitu mengenal Bash (karena ini adalah masalah umum dan hasil Google peringkat tinggi ketika mencari pesan kesalahan dalam pertanyaan).
Bagi mereka yang tidak keberatan dengan HTTPS dan yang mencari perbaikan cepat, gulir ke bawah jawaban ini untuk instruksi di bawah FOR THE LAZY
Bagi mereka yang ingin menyelesaikan masalah yang sebenarnya, ikuti instruksi di bawah ini:
Memperbaiki masalah SSH secepat mungkin
Ini adalah serangkaian instruksi yang berasal dari URL yang ditautkan oleh VonC. Itu dimodifikasi agar sekuat dan sesingkat mungkin.
Jangan mengetik
$
atau baris apa pun yang tidak dimulai$
($
artinya ini adalah sesuatu yang Anda ketikkan ke GitBash).Buka GitBash
Tetapkan info global Anda jika Anda belum:
Periksa OpenSSH:
Lihat sesuatu seperti itu?
Lihat apakah Anda sudah membuat kunci:
Jika ada dua file, Anda dapat melewati langkah selanjutnya.
Biarkan semuanya sebagai default, masukkan frasa sandi. Anda sekarang akan melihat hasil dengan perintah ini:
Periksa file konfigurasi yang ada:
Jika Anda mendapatkan hasilnya, periksa file ini untuk informasi yang salah. Jika tidak ada file, lakukan hal berikut:
Konfirmasikan konten:
Periksa Anda memulai agen SSH setiap kali Anda menjalankan GitBash:
start_agent
, langkah ini telah selesai.Masukkan yang berikut ini ke GitBash untuk membuat file .bashrc Anda:
Verifikasi file berhasil dibuat (milik Anda hanya akan berbeda ketika "nama pengguna" muncul):
.bashrc
tidak dijalankan secara default -.bash_profile
adalah. Untuk memperbaikinya, masukkan potongan ini di.bash_profile
:[[ -s ~/.bashrc ]] && source ~/.bashrc
Jika Anda tidak memasukkan frasa sandi, Anda akan melihat sesuatu seperti ini ketika memulai GitBash:
Dan yang berikut harus mengembalikan hasil:
Namun, jika Anda mendapatkan yang berikut dari
ssh-add -l
:Itu tidak menelurkan agen SSH dan .bashrc Anda kemungkinan penyebabnya.
Jika, ketika memulai GitBash, Anda melihat ini:
Itu berarti Anda lupa untuk keluar dari $ dengan a \ ketika menggema ke file (mis. Variabel diperluas). Buat ulang .bashrc Anda untuk menyelesaikan ini.
Verifikasi agen sedang berjalan dan kunci Anda telah ditambahkan:
Harus mengembalikan sesuatu yang mirip dengan ini:
Jalankan perintah berikut untuk mendapatkan kunci publik Anda:
(seharusnya mengembalikan sesuatu yang dimulai dengan "ssh-rsa ......"
ssh-rsa
bit terkemuka dan== [email protected]
bit tambahan)CTRL+A
laluCTRL+C
untuk menyalin lagi kunci publik ke clipboard Anda.Konfigurasikan kunci pribadi Anda dengan BitBucket dengan melakukan langkah-langkah berikut:
Global Public Key
untuk LabelSebuah
Global Public Key
entri sekarang harus terlihat dalam daftar kunci.Periksa remote Anda:
Beralih ke url SSH:
Periksa hal-hal dalam urutan kerja:
Anda harus melihat sesuatu seperti ini:
DIBUAT!
Anda dapat memilih untuk menggunakan HTTPS daripada SSH. Anda akan diminta mengetikkan kata sandi selama operasi jarak jauh (di-cache sementara setelah Anda mengetiknya sekali). Inilah cara Anda dapat mengkonfigurasi HTTPS:
UNTUK LAZY
Anda harus memperbaiki masalah SSH seperti yang dijelaskan oleh VonC; namun, jika Anda terburu-buru untuk berkomitmen dan tidak memiliki alat / waktu / pengetahuan untuk menghasilkan kunci publik baru sekarang , setel asal Anda ke alternatif HTTPS:
Menggunakan alat GUI seperti TortoiseGit atau alat baris perintah .
Berikut adalah dokumentasi dari URL asal alternatif ini.
Baris perintah untuk menambahkan asal jika tidak ada:
Baris perintah untuk mengubah asal yang ada:
CATATAN: nama akun Anda bukan email Anda.
Anda mungkin juga ingin mengatur info global Anda:
Kemudian coba lagi dorongan Anda (tidak perlu komit lagi)
sumber
~/.bashrc
tetapi masih ketika Anda menjalankan perintah.ssh-all -l
Itu masih menunjukkanNo agent
Dalam hal ini coba perintah inissh-agent /bin/bash
dan itu akanInitializing new SSH agent...
Kesalahan ini juga terjadi jika Anda lupa menambahkan kunci pribadi
ssh-agent
. Lakukan ini dengan:sumber
Dipformat ulang berarti Anda mungkin menghapus kunci ssh publik dan pribadi Anda (dalam ~ / .ssh).
Anda perlu membuat ulang dan mempublikasikan kunci ssh publik Anda di profil BitBucket Anda, seperti yang didokumentasikan dalam " Gunakan protokol SSH dengan Bitbucket ", mengikuti " Siapkan SSH untuk Git dengan GitBash ".
Akun-> Kelola Akun-> Kunci SSH:
Kemudian:
Gambar dari " Mengintegrasikan Mercurial / BitBucket dengan perangkat lunak JetBrains "
sumber
Saya memecahkan ini dengan menghapus perintah remote menggunakan:
dan kemudian mencoba menambahkan jarak jauh menggunakan url https alih-alih ssh
Ia meminta kredensial github. Masukkan kredensial lalu coba dorong ke git menggunakan:
sumber
Saya memiliki masalah yang sama. Kunci SSH saya diatur dengan benar. Saya memperbaiki masalah ini seperti ini.
Setelah membuat proyek baru di Bitbucket, gunakan clone. Masukkan perintah kloning di terminal dan itu harus mengklon proyek kosong ke komputer Anda. Setelah itu Anda dapat menyalin file Anda ke direktori ini dan mulai melakukan dan mendorong ke bitbucket.
sumber
git remote add
Proses hanya tidak bekerja hari ini - saya mendapat error auth ketika mencoba untuk mendorong - tetapi menghapus git dan kemudian menggunakangit clone
& recopying sumber saya (hanya README.md) bukan bekerja dengan baik. Terima kasih Rafael - Saya pasti tidak akan berpikir untuk mencobanya jika bukan karena jawaban Anda.mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Hanya perlu config file di bawah ~ / .ssh direktori
ref: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html
menambahkan bawah konfigurasi di file konfigurasi
sumber
Dua klarifikasi kecil yang mungkin menyelamatkan seseorang dari kebingungan yang saya alami:
1 - URL koneksi berbeda untuk HTTPS dan SSH
Saat menghubungkan melalui https, Anda menggunakan
namun saat terhubung melalui SSH, nama akun selalu "git"
Mencoba terhubung ke SSH dengan nama akun Anda di depan akan menyebabkan kesalahan yang diterima pengirim asli. Ini adalah bagaimana Anda dapat melakukan tes yang menghubungkan ke git @, kemudian coba dengan nama pengguna Anda dan melihat kesalahan.
2 - Kunci SSH melalui akun tim akan dihentikan pada tahun 2017
Jika Anda mengatur kunci SSH pada akun tim, mereka merekomendasikan untuk mengubahnya ke akun pribadi. Kiat yang berguna untuk menghindari e
sumber
Jika Anda menggunakan SourceTree (saya menggunakan 2.4.1), saya menemukan cara yang lebih sederhana untuk menghasilkan kunci SSH dan menambahkannya ke pengaturan Bitbucket saya. Ini memecahkan masalah bagi saya.
Saya menerima email konfirmasi dari Bitbucket bahwa kunci SSH telah ditambahkan ke akun saya.
Untuk referensi, pada macOS, menggunakan Terminal, Anda dapat menggunakan perintah berikut untuk melihat kunci yang dihasilkan untuk perangkat Anda. Di sinilah kunci yang Anda buat disimpan.
Seperti yang telah dinyatakan orang lain, dokumentasi ini membantu saya: Gunakan protokol SSH dengan Bitbucket Cloud
sumber
Selesaikan ssh seperti dalam tutorial Atlassian dan pastikan kunci privat disisipkan di profil, bukan di repositori :)
sumber
Atlassian tutorial
? Yang merupakan langkah-langkah untuk menempelkan kunci di profil dan bagaimana saya tahu jika itu ditempelkan di repositori?Saya mendapatkan kesalahan yang sama untuk satu repositori - tiba-tiba, semua yang lain masih berfungsi dengan baik ketika saya mencoba untuk menekan commit. Masalahnya tampaknya dengan kunci SSH (seperti yang sudah Anda ketahui dari komentar sebelumnya) - pada bitbucket pergi
View Profile
kemudian klikManage Account
.Di sebelah kiri klik pada
SSH Keys
kemudian tambahkan satu yang Anda miliki di sistem Anda di bawah direktori ~ / .ssh /.Jika Anda belum membuat satu - gunakan instruksi dari salah satu posting, tetapi pastikan bahwa Anda menggunakan file id_dsa.pub default atau kustom bernama, dengan nanti memerlukan
-i
opsi dengan jalur ke kunci ketika Anda menghubungkan yaituSetelah Anda menambahkan kunci lokal ke akun Anda di bitbucket, Anda akan dapat mulai berinteraksi dengan repositori Anda.
sumber
Saya menemukan solusi yang paling berhasil bagi saya adalah memecah dorongan menjadi potongan-potongan kecil.
dan menghapus file gambar tangkapan layar besar (10mb +) dari komit
Keamanan bukan masalah pada akhirnya lebih lanjut tentang batas file bin
sumber
Kesalahan ini juga muncul ketika repositori tidak ada. Saya mencoba semua jawaban sampai saya melihat nama repo hilang tanda hubung
sumber
Untuk kesalahan:
[kesalahan] akses repositori ditolak. akses melalui kunci penyebaran hanya baca. fatal: Tidak bisa membaca dari repositori jarak jauh. Pastikan Anda memiliki hak akses yang benar dan repositori ada.
[error] fatal: Tidak bisa membaca dari repositori jarak jauh.
[error] fatal: Tidak dapat menemukan pembantu jarak jauh untuk 'https'
Saya memecahkan langkah-langkah berikut ini:
Pertama instal dependensi ini:
Kemudian hapus git:
Sekarang Bangun dan instal Git pada versi terakhir, dalam hal ini:
Kemudian untuk konfigurasi:
Dan akhirnya instal seperti ini:
itu saja, sekarang konfigurasikan repo Anda dengan https:
jika Anda telah mengkonfigurasi kunci ssh di server jauh Anda harus menghapusnya.
sumber
Saya mendapat kesalahan ini
Lalu aku mencoba
bekerja tanpa tanda kutip.
sumber
Saya menemukan baris perintah git tidak suka kunci yang dihasilkan kontes saya (Windows 10).
Lihat jawaban saya di Serverfault
sumber
Saya menggunakan macOS dan meskipun saya telah mengatur kunci publik saya di bitbucket saat berikutnya saya mencoba mendorong saya mendapatkannya
Apa yang harus saya lakukan adalah Langkah 2. Tambahkan kunci ke ssh-agent seperti yang dijelaskan dalam panduan pengaturan kunci Bitbucket SSH dan terutama langkah ke-3:
Semoga ini bisa membantu pengguna mac dengan masalah yang sama.
sumber
Ini mungkin disebabkan oleh memiliki beberapa kunci SSH di agen SSH (dan / atau BitBucket). Periksa dokumentasi Atlassian untuk solusinya
sumber
Saya memiliki masalah ini dan saya pikir saya gila. Saya telah menggunakan SSH selama 20 tahun. dan git di SSH sejak 2012 ... tapi mengapa saya tidak bisa mengambil repositori bitbucket saya di komputer rumah saya?
baik, saya memiliki dua akun bitbucket dan memiliki 4 kunci SSH dimuat di dalam agen saya. bahkan jika .ssh / config saya dikonfigurasikan untuk menggunakan kunci kanan. ketika ssh sedang menginisialisasi koneksi, itu menggunakannya agar dimuat ke agen. jadi saya masuk ke akun bitbucket pribadi saya.
lalu dapatkan kesalahan Terlarang saat mencoba mengambil repo. masuk akal.
Saya menurunkan kunci dari agen
ssh-add -d ~/.ssh/personal_rsa
maka saya bisa mengambil repo.
... Kemudian saya mengetahui bahwa saya dapat memaksanya untuk menggunakan identitas yang ditentukan saja
Saya tidak tahu tentang opsi terakhir itu
IdentitiesOnly
dari dokumentasi bitbucket itu sendiri
https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/
sumber
Coba saja
sumber