Di situs GitHub ada tautan ...
https://help.github.com/articles/generating-ssh-keys
... dan menyatakan ...
Jika Anda memutuskan untuk tidak menggunakan metode HTTPS yang disarankan, kami dapat menggunakan kunci SSH untuk membuat koneksi aman antara komputer Anda dan GitHub. Langkah-langkah di bawah ini akan memandu Anda menghasilkan kunci SSH dan kemudian menambahkan kunci publik ke akun GitHub Anda.
Mengapa HTTPS metode yang disarankan? Apakah ada semacam cacat keamanan dalam metode SSH atau lebih lambat? Saya membuat kunci SSH, jadi apakah itu akan mengurangi masalah keamanan?
Jawaban:
GitHub telah mengubah rekomendasi mereka beberapa kali ( contoh ).
Tampaknya mereka saat ini merekomendasikan HTTPS karena ini adalah yang termudah untuk dibuat pada jangkauan jaringan dan platform terluas, dan oleh pengguna yang baru mengenal semua ini.
Tidak ada cacat bawaan pada SSH (jika ada mereka akan menonaktifkannya) - di tautan di bawah, Anda akan melihat bahwa mereka masih memberikan detail tentang koneksi SSH juga:
HTTPS kecil kemungkinannya diblokir oleh firewall.
https://help.github.com/articles/which-remote-url-should-i-use/
Koneksi HTTPS memungkinkan
credential.helper
untuk menyimpan kata sandi Anda.https://help.github.com/articles/set-up-git
sumber
ssh-agent
? Cukup adil. Terima kasih!Saya berasumsi HTTPS direkomendasikan oleh GitHub karena beberapa alasan
1) Lebih mudah digunakan dari mana saja karena Anda hanya memerlukan detail akun Anda (tidak perlu kunci SSH)
2) HTTPS Adalah port yang terbuka di semua firewall. SSH tidak selalu terbuka sebagai port untuk komunikasi ke jaringan eksternal
Repositori GitHub lebih mudah diakses secara universal menggunakan HTTPS daripada SSH.
Dalam pandangan saya kunci SSH sepadan dengan sedikit kerja ekstra dalam membuatnya
1) Kunci SSH tidak memberikan akses ke akun GitHub Anda, sehingga akun Anda tidak dapat dibajak jika kunci Anda dicuri,
2) Menggunakan frase kunci yang kuat dengan kunci SSH Anda membatasi penyalahgunaan, bahkan jika kunci Anda dicuri
Jika kredensial akun GitHub Anda (nama pengguna / kata sandi) dicuri, kata sandi GitHub Anda dapat diubah untuk memblokir Anda dari akses dan semua repositori yang Anda bagikan dapat dengan cepat dihapus.
Jika kunci pribadi dicuri, seseorang dapat melakukan push paksa repositori kosong dan menghapus semua riwayat perubahan untuk setiap repositori yang Anda miliki, tetapi tidak dapat mengubah apa pun di akun GitHub Anda. Akan jauh lebih mudah untuk mencoba pemulihan dari pelanggaran ini karena Anda memiliki akses ke akun GitHub Anda.
Preferensi saya adalah menggunakan SSH dengan kunci frasa sandi yang dilindungi. Saya memiliki kunci SSH yang berbeda untuk setiap komputer, jadi jika mesin itu dicuri atau dikompromikan, saya dapat dengan cepat masuk ke GitHub dan menghapus kunci itu untuk mencegah akses yang tidak diinginkan.
SSH dapat disalurkan melalui HTTPS jika jaringan Anda berada di blok port SSH.
https://help.github.com/articles/using-ssh-over-the-https-port/
Jika Anda menggunakan HTTPS, saya akan merekomendasikan untuk menambahkan otentikasi dua faktor, untuk melindungi akun Anda serta repositori Anda.
Jika Anda menggunakan HTTPS dengan alat (mis. Editor), Anda harus menggunakan token pengembang dari akun GitHub Anda alih-alih cache nama pengguna dan kata sandi dalam konfigurasi alat itu.
sumber
Entah Anda mengutip salah atau github memiliki rekomendasi berbeda pada halaman yang berbeda atau mereka dapat belajar dengan waktu dan memperbarui reco mereka.
Kami sangat menyarankan menggunakan koneksi SSH saat berinteraksi dengan GitHub. Kunci SSH adalah cara untuk mengidentifikasi komputer tepercaya, tanpa melibatkan kata sandi. Langkah-langkah di bawah ini akan memandu Anda menghasilkan kunci SSH dan kemudian menambahkan kunci publik ke akun GitHub Anda.
https://help.github.com/articles/generating-ssh-keys
sumber
Mengaktifkan koneksi SSH melalui HTTPS jika diblokir oleh firewall
Uji apakah SSH melalui port HTTPS dimungkinkan, jalankan perintah SSH ini:
Jika itu berhasil, bagus! Jika tidak, Anda mungkin perlu mengikuti panduan pemecahan masalah kami .
Jika Anda dapat SSH ke
[email protected]
over port 443 , Anda dapat mengganti pengaturan SSH Anda untuk memaksa koneksi apa pun ke GitHub agar dijalankan melalui server dan port tersebut.Untuk mengatur ini di konfigurasi ssh Anda, edit file di
~/.ssh/config
, dan tambahkan bagian ini:Anda dapat menguji apakah ini berfungsi dengan menghubungkan sekali lagi ke GitHub:
Dari Otentikasi ke GitHub / Menggunakan SSH melalui port HTTPS
sumber
Lihat juga: resmi URL jarak jauh mana yang harus saya gunakan? jawab di help.github.com.
EDIT:
Tampaknya tidak perlu lagi memiliki akses tulis ke repo publik untuk menggunakan URL SSH, menjadikan penjelasan asli saya tidak valid.
ASLI:
Tampaknya alasan utama untuk menyukai URL HTTPS adalah bahwa URL SSH tidak akan berfungsi dengan repo publik jika Anda tidak memiliki akses tulis ke repo itu.
Penggunaan URL SSH dianjurkan untuk penyebaran ke server produksi, namun - mungkin konteksnya di sini adalah layanan seperti Heroku.
sumber
Ada kemungkinan untuk berpendapat bahwa menggunakan kunci SSH untuk otentikasi kurang aman karena kami cenderung mengubah kata sandi kami lebih berkala daripada menghasilkan kunci SSH baru.
Server yang membatasi masa hidup yang akan mereka hormati diberikan kunci SSH dapat membantu memaksa pengguna terhadap praktik menyegarkan kunci SSH secara berkala.
sumber
Mungkin karena lebih sulit untuk mencuri kata sandi dari otak Anda kemudian mencuri file kunci dari komputer Anda (setidaknya setahu saya, mungkin beberapa zat sudah ada atau metode tetapi ini adalah diskusi yang tak terbatas)? Dan jika kata sandi Anda melindungi kunci, maka Anda menggunakan kata sandi lagi dan masalah yang sama muncul (tetapi beberapa orang mungkin berpendapat bahwa Anda harus melakukan lebih banyak pekerjaan, karena Anda perlu mendapatkan kunci dan kemudian memecahkan kata sandi).
sumber