Dorong ke GitHub tanpa kata sandi menggunakan ssh-key


215

Saya membuat pasangan kunci SSH tanpa kata sandi dan menambahkan kunci publik ke GitHub.

Hubungan dengan

user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.

berhasil dan ketika saya mengganti nama kuncinya, gagal.

Tetapi ketika saya ingin mendorong perubahan saya, masih meminta saya untuk kombinasi nama pengguna dan kata sandi.

Apakah ada cara untuk mendorong tanpa kata sandi?


9
Pastikan Anda tidak menggunakan https://github...remote Anda. Mereka juga harus mengikuti git@github...format.
cjc343

Jawaban:


421

Jika meminta Anda untuk nama pengguna dan kata sandi, remote asal Anda menunjuk ke URL HTTPS daripada URL SSH.

Ubah ke ssh.

Misalnya, proyek GitHub seperti Git akan memiliki URL HTTPS:

https://github.com/<Username>/<Project>.git

Dan yang SSH:

git@github.com:<Username>/<Project>.git

Anda dapat melakukan:

git remote set-url origin git@github.com:<Username>/<Project>.git

untuk mengubah URL.


4
Ini menyelesaikannya, tapi saya terus bertanya pada diri sendiri mengapa Github kemudian menyarankan Anda untuk mengarahkan remote end repositori baru ke URL http secara default. Saya baru saja membuat repositori dari awal, dan saya diberikan opsi untuk mengatur URL jarak jauh https, bukan git.
Preslav Rachev

2
Inilah perintah shell satu-liner cepat yang secara otomatis akan mengubah url https Anda ke git yang sesuai (Hanya berfungsi untuk url github!):git remote set-url origin $(git remote show origin | grep "Fetch URL" | sed 's/ *Fetch URL: //' | sed 's/https:\/\/github.com\//git@github.com:/')
Christopher Shroba

11

Selain untuk intisari, sepertinya Anda harus meninggalkan nama pengguna

git remote set-url origin git@gist.github.com:<Project code>

10

Jika Anda memang menggunakan URL SSH, tetapi masih diminta untuk nama pengguna dan kata sandi saat git mendorong:

git remote set-url origin git@github.com:<Username>/<Project>.git

Anda harus mencoba pemecahan masalah dengan:

ssh -vT git@github.com

Di bawah ini adalah contoh keluaran:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

Saya sebenarnya sudah menambahkan kunci publik ke GitHub sebelumnya, dan saya juga punya kunci pribadi secara lokal. Namun, kunci pribadi saya memiliki nama yang berbeda /c/Users/Yuci/.ssh/github_rsa.

Menurut hasil sampel, Git sedang mencoba /c/Users/Yuci/.ssh/id_rsa, yang tidak saya miliki. Karena itu, saya cukup menyalin github_rsake id_rsadalam direktori yang sama.

cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa

Sekarang ketika saya lari ssh -vT git@github.comlagi, saya punya:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
...
Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.
...

Dan sekarang saya dapat mendorong ke GitHub tanpa diminta nama pengguna dan kata sandi :-)


5

Anda harus menggunakan versi SSH , bukan HTTPS . Saat Anda mengkloning dari repositori, salin tautannya dengan SSH versi , karena SSH mudah digunakan dan menyelesaikan semua masalah dengan akses. Anda dapat mengatur akses untuk setiap SSH yang Anda masukkan ke akun Anda (seperti push, pull, clone, dll ...)

Berikut ini tautan, yang mengatakan mengapa kita membutuhkan SSH dan cara menggunakannya: langkah demi langkah

Git Hasilkan Kunci SSH


0

Seperti biasa, buat kunci SSH dan rekatkan kunci publik ke GitHub. Tambahkan kunci pribadi ke ssh-agent. (Saya menganggap ini adalah apa yang telah Anda lakukan.)

Untuk memeriksa semuanya benar, gunakan ssh -T git@github.com

Selanjutnya, jangan lupa untuk memodifikasi titik jarak jauh sebagai berikut:

git remote set-url origin git@github.com:username/your-repository.git

-4

Menggunakan baris perintah:

Masuk ls -al ~/.sshuntuk melihat apakah kunci SSH yang ada ada.

Di terminal ditunjukkan: Tidak ada direktori

Kemudian buat kunci SSH baru

Langkah 1.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Langkah 2.

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): <here is file name and enter the key>

langkah 3.

Enter passphrase (empty for no passphrase): [Type a password]

Enter same passphrase again: [Type password again]

Maaf, pertanyaan ini bukan tentang cara membuat kunci tetapi untuk mengatur git menggunakan kunci alih-alih otentikasi
Sebus
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.