Saya agak 'memasang' dengan Github selalu meminta nama pengguna dan kata sandi saya ketika saya mengkloning repositori. Saya ingin melewati langkah ini karena ini mengganggu dalam alur kerja saya.
Saya mencoba mengatur kunci SSH (yang berhasil saya lakukan) menggunakan panduan ini. https://help.github.com/articles/generating-ssh-keys dan saya berhasil.
Masalah saya adalah bahwa saya masih dimintai kata sandi dan passphrase github ketika mengkloning repositori (menggunakan SSH). Pemahaman saya adalah bahwa setelah saya mengatur kunci SSH ini, saya tidak lagi harus melakukan itu.
Saya sedikit tidak yakin harus bertanya apa, jadi saya hanya akan menyatakan tujuan saya.
Saya ingin dapat mengkloning repositori tanpa harus memasukkan informasi Github saya sepanjang waktu .
Apa yang saya lewatkan dengan kunci SSH saya? Jika ada yang bisa memberikan beberapa panduan atau sumber daya saya akan sangat menghargainya, karena saya selalu merasa sedikit bingung ketika datang ke otentikasi SSH di GitHub.
Dari pengetahuan saya, ini adalah perintah yang menguji apakah semuanya berfungsi dengan baik, berikut adalah output dari konsol saya:
~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.
Ketika saya memasukkan kata sandi saya, haruskah itu gagal dulu? Lalu, ketika saya memasukkan frasa sandi saya, kata sandi itu lewat.
pageant
, yang merupakan bagian dariputty
. Dalam semua ini tujuannya adalah sama: Anda memasukkan frasa sandi hanya sekali setelah Anda memulai PC Anda, agen manajer kunci akan meneruskannya ke ssh dalam penggunaan berikutnya sampai Anda reboot.Jawaban:
Jika Anda bekerja dengan
HTTPs
url, itu akan selalu menanyakan nama pengguna / kata sandi Anda.Jika Anda menggunakan dengan benar
SSH
ketika kloning / pengaturan jarak jauh. Kemudian pastikan Anda memiliki ssh-agent untuk mengingat kata sandi Anda. Dengan begitu, Anda hanya akan memasukkan frasa sandi satu kali dengan sesi terminal.Jika masih terlalu mengganggu, maka cukup atur kunci ssh tanpa frasa sandi.
sumber
git remote -v
. Untuk beralih dari https ke ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Tambahkan Identitas tanpa Gantungan Kunci
Mungkin ada saat di mana Anda tidak ingin frasa sandi disimpan dalam gantungan kunci, tetapi tidak ingin harus memasukkan frasa sandi berulang kali.
Anda dapat melakukannya seperti ini:
Ini akan meminta Anda untuk passphrase, masukkan dan tidak akan meminta lagi sampai Anda me-restart.
Tambahkan Identitas Menggunakan Keychain
Seperti @dennis tunjukkan dalam komentar, untuk tetap menggunakan frasa sandi melalui restart dengan menyimpannya di gantungan kunci Anda, Anda dapat menggunakan
-K
opsi (-k
untuk Ubuntu) saat menambahkan identitas seperti ini:Sekali lagi, ini akan meminta Anda untuk frasa sandi, masukkan kata sandinya dan kali ini tidak akan pernah lagi meminta identitas ini.
sumber
-K
opsi untuk menyimpan frasa sandi di gantungan kunci Anda saat menambahkannya, misalnyassh-add -K ~/.ssh/id_rsa
-k
untuk saya ... (Linux Mint / Ubuntu 14.04 base) tapi ya! akhirnya diurutkan ini ...ssh-add
secara otomatis akan menambah~/.ssh/id_rsa
(di antara file lain). Dan tidak ada alasan untuk mengirim output ke/dev/null
; jauh lebih baik untuk melihat laporan tentang apa yang dilakukannya.Pada Mac OSX Anda dapat menambahkan kunci pribadi ke gantungan kunci menggunakan perintah:
Jika kunci pribadi Anda disimpan di ~ / .ssh dan diberi nama id_rsa:
Anda kemudian akan diminta kata sandi, yang akan disimpan di gantungan kunci Anda.
Edit - Menangani restart
Agar tidak harus mengisi kata sandi Anda bahkan setelah restart tambahkan berikut ini ke file konfigurasi ssh Anda (biasanya terletak di ~ / .ssh / config)
sumber
~/.ssh
Saya mencoba semua jawaban di sini dan tidak ada jawaban yang berhasil ! Kata sandi saya tidak akan bertahan di antara sesi / restart Mac saya.
Apa yang saya temukan dari membaca OpenRadar ini dan diskusi Twitter ini adalah bahwa Apple sengaja mengubah perilaku ssh-agent di macOS 10.12 Sierra untuk tidak lagi secara otomatis memuat kunci SSH sebelumnya. Untuk mempertahankan perilaku yang sama dengan El Cap, saya melakukan hal berikut:
ssh-add -K ~/.ssh/id_rsa
Catatan: ubah jalur ke tempat kunci id_rsa Anda berada.
ssh-add -A
Buat (atau edit jika ada)
~/.ssh/config
file berikut :Dan sekarang kata sandi saya diingat antara restart Mac saya!
sumber
ssh-add -A
tidak diperlukan jika Anda hanya memiliki satu kunci~/.ssh/id_rsa
)Anda dapat menghapus frasa sandi untuk kunci tersebut
atau kamu bisa lari
Anda mendapatkan prompt untuk keyfile. Secara default
~/.ssh/id_rsa
begitu tekan enterAnda akan diminta memasukkan frasa sandi saat ini untuk memasukkannya.
Kemudian akan ada prompt untuk frasa sandi baru, tekan enter
sumber
-K
,-k
,-A
tidak bekerja untuk saya).Jalankan saja perintah berikut:
Ia tidak akan pernah meminta Anda memasukkan kata sandi lagi.
sumber
ssh-add
hanya "menambahkan identitas kunci pribadi ke agen otentikasi", dan-K
opsi membuatnya jadi "Ketika menambahkan identitas, setiap frasa sandi juga akan disimpan dalam gantungan kunci pengguna."Pastikan Anda menggunakan ssh untuk repositori Anda juga
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)
Jangan gunakan https, jika remote Anda menggunakan https maka ia akan terus meminta kata sandi, bahkan jika Anda telah menambahkan kunci publik ke Github dan menambahkan kunci pribadi ke ssh-agent. Di bawah ini akan selalu meminta kata sandi
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)
sumber
git pull
dangit push
. Saya mengalihkan url saya dari tipe HTTPS ke tipe SSH, dan itu berhasil -git pull
berhenti meminta kata sandi.git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Saya harus mengeksekusi:
Catatan : Anda harus melakukan ini lagi setelah setiap restart. Jika Anda ingin menghindarinya, masukkan di file " .bashrc " Anda yang ada di
C:\Users\<<USERNAME>>\.bashrc
windows. Mungkin disembunyikan, jadi pastikan Anda dapat melihat file tersembunyi.Solusi ditemukan di sini .
sumber
Jika Anda menggunakan windows, ini bekerja untuk saya:
Itu akan meminta frasa sandi di perintah kedua, dan hanya itu.
sumber
Lihat jawaban StackExchange asli di sini
sumber
Coba
ssh-agent
seperti yang dijelaskan di sana: https://help.github.com/articles/working-with-ssh-key-passphrasessumber
Baru-baru ini saya memutakhirkan ke macOS Mojave, dan menginstal beberapa alat melalui homebrew, yang sepertinya menukar versi Apple
ssh-add
dengan yang berbeda. Versi default saya darissh-add
tidak memiliki-K
opsi. Ini menyebabkan kesalahan berikut:# ssh-add: illegal option -- K
Anda dapat melihat versi mana yang
ssh-add
Anda miliki dengan menjalankanwhich ssh-add
.(Tambang disimpan di
/usr/local/bin/ssh-add
)Untuk memperbaikinya, saya harus mengarahkan kunci ke versi Apple :
Git / GitHub bekerja dengan sempurna sesudahnya. Untuk informasi lebih lanjut, lihat: Kesalahan: ssh-add: opsi ilegal - K
sumber
Untuk Mac OSX Sierra, saya menemukan bahwa perbaikan yang disarankan dalam masalah github untuk Open Radar memperbaiki masalah saya. Sepertinya Sierra mengubah perilaku default (saya mulai mengalami masalah ini setelah memutakhirkan).
Yang ini saya temukan sangat berguna: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061
Ini mengakibatkan identitas saya ditambahkan ke agen, setelah saya berlari
Untuk meringkas, dalam OSX.12:
harus menghasilkan:
EDIT: Saya perhatikan waktu berikutnya saya melakukan reboot penuh (alias agen berhenti dan restart) ini tidak lagi berfungsi. Solusi yang lebih lengkap adalah apa yang @ChrisJF sebutkan di atas: membuat
~/.ssh/config
file. Inilah output milik saya:Anda dapat menambahkan
IdentityFile
entri sebanyak yang Anda butuhkan, tetapi ini adalah pengaturan default. Ini adalah jawaban "trending" pada tautan openradar di atas, ATM, juga.sumber
Bekerja di LinuxMint / Ubuntu
Lakukan langkah-langkah berikut
Langkah 1:
Simpan baris di bawah ini ke dalam file
Langkah 2:
Buka terminal dan tambahkan keyset ke ssh-add
berikan frasa sandi.
sumber
Saya sudah menetapkan frasa sandi, tetapi karena alasan tertentu tidak akan mengenalinya lagi. Jadi saya hanya menambahkan file identitas ke gantungan kunci saya lagi menggunakan
ssh-add -K
dan berhenti meminta kata sandi saya.sumber
Inilah yang bekerja untuk saya:
sumber
Masalah tampaknya karena Anda kloning dari HTTPS dan bukan SSH. Saya mencoba semua solusi lain di sini tetapi masih mengalami masalah. Ini berhasil untukku.
Menggunakan
osxkeychain helper
seperti ini:Cari tahu apakah Anda sudah menginstalnya.
git credential-osxkeychain
Jika tidak diinstal, Anda akan diminta untuk mengunduhnya sebagai bagian dari Alat Baris Perintah Xcode.
Jika sudah diinstal, beri tahu Git untuk menggunakan
osxkeychain helper
menggunakancredential.helper
konfigurasi global :git config --global credential.helper osxkeychain
Lain kali Anda mengkloning url HTTPS, Anda akan diminta nama pengguna / kata sandi, dan untuk memberikan akses ke gantungan kunci OSX. Setelah Anda melakukan ini pertama kali, itu harus disimpan di gantungan kunci Anda dan Anda tidak perlu mengetiknya lagi.
sumber
Jawaban ini terutama untuk pengguna windows dan juga sama-sama relevan jika Anda mengalami masalah kloning dengan tfs, github atau gitlab pada OS lain.
Mode otentikasi default saat menggunakan SSH adalah kunci pribadi. Kapan pun itu gagal karena suatu alasan, ssh-agent kembali ke otentikasi berdasarkan nama pengguna dan kata sandi.
Ada beberapa alasan mengapa otentikasi berbasis kunci default mungkin gagal. Berikut ini adalah kasus yang paling umum:
a) Agen ssh tidak dapat menemukan file kunci privat default yang id_rsa , dan tidak ada jalur kunci lain yang ditentukan secara eksplisit.
b) Kunci publik yang disimpan di server salah.
c) Jalur yang Anda coba tiru salah.
Dalam kasus apa pun, untuk memecahkan masalah, pertama-tama jalankan perintah git clone dengan verbose logging dengan perintah:
Anda dapat melewati setiap langkah dalam log untuk mendapatkan intuisi tentang apa masalahnya.
Pemecahan masalah jika terjadi (a)
Jika Anda ingin menentukan kunci lain untuk otentikasi, gunakan perintah berikut:
Pemecahan masalah jika terjadi (b)
Pemecahan masalah jika terjadi (c)
sumber
Jika Anda menggunakan ssh url untuk git, saat diminta kata sandi untuk ssh, masukkan nama pengguna sebagai " git " dan kata sandi sebagai kata sandi login sistem Anda
sumber
HTTPS
untukSSH
menyelesaikan masalah saya. Terima kasih @MichaelR, artikel Anda sangat membantu, meskipun saya belum membaca apa pun darinya: DSaya ingin menambahkan jawaban bagi mereka yang mungkin masih perlu memasukkan kata sandi karena mereka telah menetapkan IdentitiesOnly sebagai ya. Ini dapat disebabkan oleh beberapa kunci dan file identitas, menjadi kunci untuk git atau server.
Setelah saya membuat kunci dan menyalinnya ke server:
Saya menemukan itu tidak berhasil.
Lalu saya pergi memeriksa
~/.ssh/config
file, saya melihat ini di bagian bawah:Lalu saya tambahkan ini di atas:
Saya bisa masuk dengan memasukkan
ssh 12gpu
.Kemudian Anda dapat menambahkan beberapa kunci ssh menggunakan nama favorit Anda, dan Anda hanya perlu menambahkan pengaturan seperti empat baris di atas ke file konfigurasi.
Host adalah nama yang ingin Anda masukkan ketika Anda terhubung ke server nanti; yang Hostname adalah ip server atau domain seperti github.com; Pengguna adalah nama pengguna yang Anda masuki di server seperti nama pengguna atau git untuk github atau gitlab; dan IdentityFile adalah file tempat Anda menyimpan kunci yang Anda buat.
sumber
Secara umum, berikut adalah langkah-langkah untuk memungkinkan Anda membuat koneksi jarak jauh ke server Anda menggunakan ssh tanpa kata sandi:
Buat sepasang kunci privat dan publik rsa
Salin kunci publik Anda dan login ke server jauh Anda
Tambahkan kunci publik Anda ke .ssh /otorized_keys
Jika Anda memiliki beberapa kunci ssh di komputer, Anda dapat menambahkan kunci menggunakan ssh-add
$ ssh-add /path/to/private/key
Kemudian coba ssh ke server Anda
$ ssh username@your_ip_address
Sumber: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html
sumber
Gunakan
ssh
url jarak jauh yang disediakan oleh Github tidakhttps
.sumber
Jika Anda menggunakan Windows dan GIT tanpa alat pihak ketiga dan kunci Anda tidak diamankan dengan kata sandi / frasa sandi gunakan ini:
Tambahkan host git-server Anda ke file "config" seperti:
Simpan file dan klon repositori seperti ini:
git clone ssh: //myhostname.com/git-server/repos/picalc.git
Anda dapat menggunakan parameter konfigurasi tambahan untuk entri host file "config". Ini dapat ditemukan di folder instalasi git lokal Anda, misalnya " C: \ Program Files \ Git \ etc \ ssh \ ssh_config ". Kutipan:
sumber
Masalah yang sama bagi saya dan solusinya adalah:
Lihat dokumen github ini untuk mengonversi URL jarak jauh dari https ke ssh. Untuk memeriksa apakah URL remote ssh atau https, gunakan git remote -v. Untuk beralih dari https ke ssh: git set-url remote asal [email protected]: USERNAME / REPOSITORY.git @jeeYem
sumber
Mobaxterme memiliki antarmuka UI untuk itu
setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]
sumber
Kunci SSH - Masih meminta kata sandi dan frasa sandi
Jika di Windows dan menggunakan Putty sebagai generator kunci SSH , solusi cepat & mudah ini ternyata menjadi satu-satunya solusi yang berfungsi bagi saya menggunakan baris perintah windows biasa:
pageant.exe
danplink.exe
.ppk
ekstensi"full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"
( harus dikutip). Ini akan menjalankanpageant
layanan dan mendaftarkan kunci Anda (setelah memasukkan kata sandi).GIT_SSH=full\path\to\plink.exe
( tidak boleh dikutip). Ini akan mengarahkan perintah git ssh-communication-related keplink
yang akan menggunakanpageant
layanan untuk otentikasi tanpa meminta kata sandi lagi.Selesai!
Catatan1: Dokumentasi ini memperingatkan tentang beberapa keanehan ketika bekerja dengan
GIT_SHH
pengaturan variabel lingkungan. Aku bisapush
,pull
,fetch
dengan sejumlah parameter tambahan untuk perintah dan semuanya bekerja dengan baik untuk saya (tanpa perlu menulis skrip tambahan seperti yang disarankan di dalamnya).Note2: Jalur ke
PuTTY
instalasi biasanyaPATH
jadi bisa dihilangkan. Lagi pula, saya lebih suka menentukan path lengkap.Otomatisasi:
File batch berikut dapat dijalankan sebelum menggunakan git dari baris perintah. Ini menggambarkan penggunaan pengaturan:
Bagaimanapun, saya memiliki
GIT_SSH
set variabelSystemPropertiesAdvanced.exe > Environment variables
danpageant.exe
ditambahkan sebagaiRun
kunci registri (*).(*) Langkah-langkah untuk menambahkan
Run
kunci registri>regedit.exe
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
Edit > New > String Value
Edit > Modify...
(atau klik dua kali)pageant.exe
danpublic key
, misalnya,"C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"
(perhatikan bahwa%ProgramFiles%
variabel dll tidak bekerja di sini kecuali memilihExpandable string value
di tempatString value
dalam langkah 3.).sumber
Sebagaimana dijelaskan dalam Kloning repo Git dari VSTS melalui SSH meminta kata sandi! Tidak terduga
Masalahnya mungkin karena otentikasi kunci publik gagal, sehingga kemudian meminta kata sandi akun perusahaan saya.
Ini tidak akan terjadi jika otentikasi kunci publik berhasil.
Jadi, Anda dapat memeriksa id_rsa.pub dan bahkan membuat yang baru.
sumber
Saya pikir jawaban bangbang @sudo harus diterima.
Saat membuat kunci ssh, Anda cukup menekan "Enter" untuk melewatkan mengetik kata sandi Anda ketika meminta Anda untuk mengkonfigurasi kata sandi.
Itu berarti Anda TIDAK PERLU kata sandi saat menggunakan kunci ssh, jadi ingatlah ketika membuat kunci ssh, JANGAN masukkan kata sandi, cukup tekan 'Enter' untuk melewatinya.
sumber