Saya mengalami kesalahan ini:
$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
! Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.
Saya mencoba menambahkan kunci dan saya mendapatkan kesalahan ini di bawah:
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
$ ssh-agent /bin/sh
dan$ ssh-add $yourkey
git config --list
untuk melihat apakah Anda telah mengaturcredential.helper
- jika sudah, Anda harus menghapus pengaturan ini, karena helper tidak membantu.Jawaban:
Apakah Anda Mulai
ssh-agent
?Anda mungkin perlu memulai
ssh-agent
sebelum menjalankanssh-add
perintah:Perhatikan bahwa ini akan memulai agen untuk msysgit Bash di Windows . Jika Anda menggunakan shell atau sistem operasi yang berbeda, Anda mungkin perlu menggunakan varian perintah, seperti yang tercantum dalam jawaban lain .
Lihat jawaban berikut:
Untuk memulai ssh-agent secara otomatis dan memungkinkan satu instance bekerja di banyak jendela konsol, lihat Mulai ssh-agent saat masuk .
Mengapa kita perlu menggunakan,
eval
bukan hanyassh-agent
?Untuk mencari tahu alasannya, lihat jawaban Robin Green .
Kunci Publik vs Pribadi
Juga, setiap kali saya menggunakan
ssh-add
, saya selalu menambahkan kunci pribadi untuk itu. File tersebut~/.ssh/id_rsa.pub
terlihat seperti kunci publik, saya tidak yakin apakah itu akan berhasil. Apakah Anda punya~/.ssh/id_rsa
file? Jika Anda membukanya di editor teks, apakah dikatakan itu kunci pribadi?sumber
ssh-add
hanya mendekripsi kunci pribadi terenkripsi pada mesin host, sehingga dapat digunakan secara lokal ... tidak pernah dikirim ke siapa pun . Saya menduga bahwa hanya kunci publik yang pernah dikirim melalui jaringan. Apakah pemahaman saya salah?eval ssh-agent -s
bekerja, tetapissh-agent
itu sendiri tidak.SSH_AUTH_SOCK
IIRC). Jika Anda hanya menjalankanssh-agent
maka agen akan mulai, tetapi SSH tidak akan tahu di mana menemukannya.Saya mencoba solusi lain tetapi tidak berhasil. Saya melakukan lebih banyak riset dan menemukan bahwa perintah berikut ini berfungsi. Saya menggunakan Windows 7 dan Git Bash .
Informasi lebih lanjut di: https://coderwall.com/p/rdi_wq
sumber
Perintah berikut bekerja untuk saya. Saya menggunakan CentOS.
sumber
ssh-add my.id_rsa
akan gagal pada saya. Tetapiexec ssh-agent zsh
memberikan lingkungan di mana saya bisassh-add
tanpa masalah. Dan saya berada di dalam wadah buruh pelabuhan saya :)MsysGit atau Cygwin
Jika Anda menggunakan Msysgit atau Cygwin, Anda dapat menemukan tutorial yang bagus di SSH-Agent di msysgit dan cygwin dan bash :
Tambahkan file yang dipanggil
.bashrc
ke folder rumah Anda.Buka file dan tempel di:
Ini mengasumsikan bahwa kunci Anda ada di
~/.ssh/id_rsa
lokasi konvensional . Jika tidak, sertakan jalur lengkap setelahssh-add
perintah.Tambahkan ke atau buat file
~/.ssh/config
dengan kontenDalam tutorial asli
ForwardAgent
param adalahYes
, tapi ini salah ketik. Gunakan semua huruf kecil atau Anda akan mendapatkan kesalahan.Mulai ulang Msysgit. Ia akan meminta Anda untuk memasukkan kata sandi Anda sekali, dan hanya itu (sampai Anda mengakhiri sesi, atau agen ssh Anda terbunuh.)
Mac / OS X
Jika Anda tidak ingin memulai ssh-agent baru setiap kali Anda membuka terminal, periksa Keychain . Saya menggunakan Mac sekarang, jadi saya menggunakan tutorial ssh-agent dengan zsh & gantungan kunci di Mac OS X untuk mengaturnya, tetapi saya yakin pencarian Google akan memiliki banyak info untuk Windows.
Pembaruan : Solusi yang lebih baik pada Mac adalah menambahkan kunci Anda ke Keychain Mac OS:
Sederhana seperti itu.
sumber
eval `ssh-agent -s`
proses tidak berhenti ketika saya keluar dari cygwin.ps -u $(whoami) | grep ssh-agent &> /dev/null || eval $(ssh-agent)
- jika ssh-agent baru dimulai setiap kali. Membunuh mesin saya setiap saat ketika pengguna memiliki cronjobs.ForwardAgent yes
tidak diperlukan dan merupakan risiko keamanan nontheoretical jika ditetapkan untuk server yang tidak dipercaya. Akses lokal ke agen kunci Anda harus berfungsi terlepas dari pengaturan ini.Tidak dapat membuka koneksi ke agen otentikasi Anda
Untuk mengatasi kesalahan ini:
pesta:
tcsh:
Kemudian gunakan
ssh-add
seperti biasa.Tip panas:
Saya selalu lupa apa yang harus diketik untuk perintah ssh-agent di atas, jadi saya membuat alias di
.bashrc
file saya seperti ini:Sekarang alih-alih menggunakan
ssh-agent
, saya bisa menggunakanssh-agent-cyg
Misalnya
Sumber asli perbaikan:
http://cygwin.com/ml/cygwin/2011-10/msg00313.html
sumber
eval
perintah setiap kali sebelumnya Anda berlarissh-agent
. Saya menggunakan alias sekarang, lihat jawaban yang diperbarui untuk bagaimana saya melakukan ini.fatal: Could not read from remote repository.
.Saya menghadapi masalah yang sama untuk Linux, dan inilah yang saya lakukan:
Pada dasarnya, perintah ssh-agent memulai agen, tetapi itu tidak benar-benar mengatur variabel lingkungan untuk menjalankannya. Itu hanya menampilkan variabel-variabel ke shell.
Kamu butuh:
dan kemudian lakukan ssh-add. Lihat Tidak dapat membuka koneksi ke agen otentikasi Anda .
sumber
ssh-add dan ssh (dengan asumsi Anda menggunakan implementasi openssh) memerlukan variabel lingkungan untuk mengetahui cara berbicara dengan agen ssh. Jika Anda memulai agen di jendela prompt perintah yang berbeda dengan yang Anda gunakan sekarang, atau jika Anda memulainya dengan salah, ssh-add atau ssh tidak akan melihat bahwa set variabel lingkungan (karena variabel lingkungan diatur secara lokal ke perintah minta sudah diatur dalam).
Anda tidak mengatakan versi ssh yang Anda gunakan, tetapi jika Anda menggunakan cygwin, Anda dapat menggunakan resep ini dari SSH Agent di Cygwin :
Ini akan memulai agen secara otomatis untuk setiap jendela prompt perintah baru yang Anda buka (yang tidak optimal jika Anda membuka beberapa perintah prompt dalam satu sesi, tetapi setidaknya itu akan berfungsi).
sumber
eval $(ssh-agent)
dan saya dapat menggunakan ssh tanpa kata sandi untuk setiap jendela terminal baru.Lari
Untuk mendapatkan detail lebih lanjut, Anda dapat mencari
atau lari
sumber
ssh-copy-id
di ubuntu. Tidak yakin mengapa saya tidak bisa menambahkan kunci tanpa menggunakanssh-agent
untuk meluncurkan bash.ssh-agent zsh; ssh-add
Coba langkah-langkah berikut:
1) Buka Git Bash dan jalankan:
cd ~/.ssh
2) Coba jalankan agen:
eval $(ssh-agent)
3) Saat ini, Anda dapat menjalankan perintah berikut:
ssh-add -l
sumber
ps aux | grep ssh
dankill
perintah dalam jawaban Rick untuk membunuh agen. Setelah itussh-add
bekerja tanpa tombol -l (Menggunakan -l memberi kesalahan).eval 'ssh-agent'
karena dalam jawaban Rick tidak berhasil, saya harus menggunakaneval $(ssh-agent)
seperti pada jawaban Chechoro di sini.$(ssh-agent)
setara dengan`ssh-agent`
tetapi lebih mudah dibaca.Alih-alih menggunakan
$ ssh-agent -s
, saya biasa$ eval `ssh-agent -s`
memecahkan masalah ini.Inilah yang saya lakukan langkah demi langkah (langkah 2 dan seterusnya di GitBash):
C:\user\<username>\.ssh\
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
$ ps aux | grep ssh
$ kill <pids>
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa
sumber
ssh-agent -s
dan menambahkan kunci lama menggunakan ssh-add ~ / .ssh / id_rsa. Jika Anda membuat kunci SSH baru maka Anda perlu memperbarui kunci itu di semua layanan Anda seperti github, bitbucket, dll.ssh-agent -s
" dan "ssh-add ~ / .ssh / id_rsa" lagi.Di Windows 10, saya mencoba semua jawaban yang tercantum di sini, tetapi tidak ada yang tampaknya berhasil. Bahkan mereka memberi petunjuk. Untuk memecahkan masalah, Anda hanya perlu 3 perintah. Gagasan dari masalah ini adalah bahwa ssh-add membutuhkan variabel lingkungan SSH_AUTH_SOCK dan SSH_AGENT_PID yang akan ditetapkan dengan jalur file ssh-agent sock saat ini dan nomor pid.
Ini akan menghemat output dari ssh-agent dalam file. Konten file teks akan menjadi seperti ini:
Salin sesuatu seperti "/tmp/ssh-kjmxRb2764/agent.2764" dari file teks dan jalankan perintah berikut secara langsung di konsol:
Salin sesuatu seperti "3044" dari file teks dan jalankan perintah berikut secara langsung di konsol:
Sekarang ketika variabel lingkungan (SSH_AUTH_SOCK dan SSH_AGENT_PID) ditetapkan untuk sesi konsol saat ini jalankan perintah ssh-add Anda dan tidak akan gagal lagi untuk menghubungkan ssh agent.
sumber
set
olehexport
Satu hal yang saya temui adalah bahwa
eval
tidak berfungsi untuk saya menggunakan Cygwin, apa yang berhasil bagi saya adalahssh-agent ssh-add id_rsa
.Setelah itu saya menemukan masalah bahwa kunci pribadi saya terlalu terbuka, solusi yang berhasil saya temukan untuk itu (dari sini ):
sebaik
akhirnya saya bisa menggunakan:
sumber
eval `ssh-agent`
, dengan backticks di`
sekitarssh-agent
, seperti yang ditunjukkan dalam jawaban saya ? Itu bekerja dengan baik bagi saya di Cygwin. Anda tampaknya benar yangssh-agent ssh-add
juga berfungsi, setidaknya di msysgit Bash. Namun, perhatikan bahwa ituid_rsa
adalah kunci default yang digunakan, jadi Anda tidak perlu menentukannya denganssh-agent ssh-add id_rsa
.Untuk memperkuat jawaban n3o untuk Windows 7 ...
Masalah saya memang beberapa variabel lingkungan yang diperlukan tidak disetel, dan n3o benar bahwa ssh-agent memberi tahu Anda cara mengatur variabel lingkungan tersebut, tetapi tidak benar-benar mengaturnya.
Karena Windows tidak membiarkan Anda melakukan "eval," inilah yang harus dilakukan:
Arahkan output ssh-agent ke file batch dengan
Sekarang gunakan editor teks seperti Notepad untuk mengedit temp.bat. Untuk masing-masing dari dua baris pertama: - Masukkan kata "set" dan spasi di awal baris. - Hapus tanda titik koma pertama dan semua yang mengikuti.
Sekarang hapus baris ketiga. Temp.bat Anda akan terlihat seperti ini:
Jalankan temp.bat. Ini akan mengatur variabel lingkungan yang diperlukan untuk ssh-add agar berfungsi.
sumber
Could not open a connection to your authentication agent.
ketika menjalankan ssh-add di Win10 PowerShell.Saya baru saja bekerja. Buka
~/.ssh/config
file Anda .Tambahkan berikut-
Halaman yang memberi saya petunjuk. Mengatur SSH untuk Git mengatakan bahwa lekukan spasi tunggal penting ... meskipun saya memiliki konfigurasi di sini dari Heroku yang tidak memiliki ruang itu dan berfungsi dengan baik.
sumber
Jika Anda mengikuti instruksi ini, masalah Anda akan terpecahkan.
Jika Anda menggunakan mesin Mac atau Linux, ketikkan:
Jika Anda menggunakan mesin Windows, ketikkan:
sumber
Biarkan saya menawarkan solusi lain. Jika Anda baru saja menginstal Git 1.8.2.2 atau sekitar itu, dan Anda ingin mengaktifkan SSH, ikuti baik-ditulis arah .
Semuanya sampai ke Langkah 5.6 di mana Anda mungkin menemukan sedikit hambatan. Jika agen SSH sudah berjalan, Anda bisa mendapatkan pesan galat berikut saat memulai ulang bash
Jika Anda melakukannya, gunakan perintah berikut untuk melihat apakah lebih dari satu proses ssh-agent sedang berjalan
Jika Anda melihat lebih dari satu layanan ssh-agent, Anda harus mematikan semua proses ini. Gunakan perintah kill sebagai berikut (PID akan unik di komputer Anda)
Contoh:
Setelah Anda menghapus semua proses ssh-agent, jalankan px aux | perintah grep ssh lagi untuk memastikan semuanya hilang, lalu mulai ulang Bash.
Voila, Anda sekarang harus mendapatkan sesuatu seperti ini:
Sekarang Anda dapat melanjutkan pada Langkah 5.7 dan seterusnya.
sumber
Untuk pengguna jendela, saya menemukan cmd
eval `ssh-agent -s`
tidak berfungsi, tetapi menggunakan git bash cukup menyenangkaneval `ssh-agent -s`; ssh-add KEY_LOCATION
, dan memastikan layanan windows "OpenSSH Key Management" tidak dinonaktifkansumber
Ini akan menjalankan agen SSH dan mengautentikasi hanya saat pertama kali Anda membutuhkannya , tidak setiap kali Anda membuka terminal Bash Anda. Ini dapat digunakan untuk semua program yang menggunakan SSH secara umum, termasuk ssh itu sendiri dan scp. Cukup tambahkan ini ke
/etc/profile.d/ssh-helper.sh
:sumber
ps -A | grep ssh-agent
ataups h -C ssh-agent
harus digunakan sebagai gantinyaps | grep ssh-agent
echo ssh-auth | bash
akan gagal.AddKeysToAgent yes
(atau gunakanprompt
) ke entri konfigurasi ssh Anda (gunakanHost *
untuk semua Host.) Dengan begitu Anda hanya akan dimintai kata sandi SSH jika Anda benar-benar mencoba untuk terhubung jika tidak, Anda mungkin akan diminta kata sandi untuk kata sandi sederhanagit diff
ataugit status
.$HOME/.ssh
mungkin lebih kuat daripada/home/$(whoami)/.ssh
Saya memiliki masalah yang sama
Ubuntu
dan solusi lainnya tidak membantu saya. Saya akhirnya menyadari apa masalah saya. Saya telah membuatssh
kunci saya di/root/.ssh
folder, Jadi bahkan ketika saya berlarissh-add
sebagai root, itu tidak bisa melakukan pekerjaannya dan terus berkataSaya membuat kunci publik dan pribadi ssh di
/home/myUsername/
folder dan saya gunakanlalu aku berlari
dan masalah diselesaikan dengan cara ini.
Catatan: Untuk mengakses repositori
git
Anda, tambahkan kata sandi git saat Anda membuatssh
kuncissh-keygen -t rsa -C "your git email here"
.sumber
Gunakan parameter -A ketika Anda terhubung ke server, contoh:
dari halaman manual:
sumber
Solusi dasar untuk menjalankan
ssh-agent
dijawab dalam banyak jawaban. Namun menjalankanssh-agent
berkali-kali (per setiap terminal yang dibuka atau per login jarak jauh) akan membuat banyak salinanssh-agent
berjalan di memori. Skrip yang disarankan untuk menghindari masalah itu lama dan perlu menulis dan / atau menyalin file yang terpisah atau perlu menulis terlalu banyak string dalam~/.profile
atau~/.schrc
. Izinkan saya menyarankan solusi dua string sederhana:Untuk sh , bash , dll:
Untuk csh , tcsh , dll:
Apa yang ada di sini:
ssh-agent
dengan nama dan oleh pengguna saat inissh-agent
dan menjalankanssh-agent
sendiri jika tidak adassh-agent
proses pengguna saat ini ditemukanTidak perlu untuk melindungi skrip shell yang dibuat
~/.ssh-agent.tcsh
atau~/.ssh-agent.sh
dari akses pengguna lain karena: komunikasi pertama denganssh-agent
diproses melalui soket yang dilindungi yang tidak dapat diakses oleh pengguna lain, dan pada detik pengguna lain dapat menemukanssh-agent
soket dengan mudah melalui pencacahan file dalam/tmp/
direktori. Sejauh tentang akses kessh-agent
proses itu adalah hal yang sama.sumber
Coba yang berikut ini:
sumber
Baca jawaban @ cupcake untuk penjelasan. Di sini saya hanya mencoba untuk mengotomatiskan perbaikannya.
Jika Anda menggunakan terminal Cygwin dengan BASH, tambahkan yang berikut ke file $ HOME / .bashrc. Ini hanya memulai ssh-agent sekali di terminal Bash pertama dan menambahkan kunci ke ssh-agent. (Tidak yakin apakah ini diperlukan di Linux)
JANGAN LUPA untuk menambahkan kunci Anda yang benar dalam perintah "ssh-add".
sumber
Saya punya masalah ini, ketika saya mulai ssh-agent, ketika sudah berjalan. Bingung. Untuk melihat apakah ini masalahnya, gunakan
untuk melihat apakah ini sama dengan apa yang Anda pikir seharusnya. Dalam kasus saya, itu berbeda dari yang baru saya mulai.
Untuk memverifikasi lebih lanjut jika Anda menjalankan lebih dari satu ssh-agent, Anda dapat meninjau:
sumber
eval $(ssh-agent)
seharusnya membuat agen baru dengan PID yang berbeda setiap waktu, meskipun saya bisa saja salah.Saya memiliki masalah yang sama ketika saya mencoba untuk membuatnya bekerja pada Windows untuk terhubung ke simpanan via ssh
Inilah solusi yang bekerja untuk saya.
Ternyata saya menjalankan Pageant ssh agent di kotak Windows saya - saya akan memeriksa apa yang Anda jalankan. Saya curiga itu adalah Pageant karena sudah menjadi default dengan Putty dan winScp
Ssh-add tidak berfungsi dari baris perintah dengan agen jenis ini
Anda perlu menambahkan kunci pribadi melalui jendela UI kontes yang dapat Anda peroleh dengan menggandakan ikon Pageant di bilah tugas (setelah dimulai).
Sebelum Anda menambahkan kunci ke Pageant, Anda perlu mengubahnya menjadi format PPK. Instruksi lengkap tersedia di sini. Bagaimana mengkonversi kunci SSH ke format ppk
Hanya itu saja. Setelah saya mengunggah kunci saya ke simpanan saya dapat menggunakan SourceTree untuk membuat repo lokal dan mengkloning remote.
Semoga ini membantu...
sumber
Saya menyelesaikan kesalahan dengan menghentikan (membunuh) proses git (ssh agent), lalu menghapus instalasi Git, dan kemudian menginstal Git lagi.
sumber
Menggunakan Git Bash di Win8.1E, resolusi saya adalah sebagai berikut:
sumber
/dev/null
? Jawaban Anda pada dasarnya melakukan hal yang persis sama dengan yang ini .~/.ssh/id_rsa
adalah kunci default, jadi Anda tidak harus menentukanssh-add ~/.ssh/id_rsa
, hanyassh-add
harus berfungsi.Jika Anda menggunakan Putty, mungkin Anda perlu mengatur opsi "Koneksi / SSH / Auth / Izinkan penerusan agen" menjadi "true".
sumber
Ini berhasil untuk saya.
sumber
Untuk bash bawaan Windows 10, saya menambahkan ini ke .bash_profile:
sumber
$(ssh-agent -s)
untuk mengatur lingkungan agen.