The user@host:path/to/repo
Format memberitahu Git untuk penggunaan ssh untuk login ke host
dengan nama pengguna user
. Dari git help clone
:
Sintaks seperti scp-like juga dapat digunakan dengan protokol ssh:
[user@]host.xz:path/to/repo.git/
Bagian sebelum @
adalah nama pengguna, dan metode otentikasi (kata sandi, kunci publik, dll.) Ditentukan oleh ssh, bukan Git. Git tidak memiliki cara untuk mengirimkan kata sandi ke ssh, karena ssh bahkan mungkin tidak menggunakan kata sandi tergantung pada konfigurasi server jarak jauh.
Gunakan ssh-agent
untuk menghindari mengetik kata sandi sepanjang waktu
Jika Anda tidak ingin mengetikkan kata sandi ssh setiap saat, solusinya adalah membuat pasangan kunci publik / pribadi , memasukkan kunci publik ke ~/.ssh/authorized_keys
file Anda di server jarak jauh, dan memuat kunci privat Anda ke dalamnya ssh-agent
. Juga lihat Konfigurasi Git lebih SSH untuk login sekali , halaman bantuan GitHub pada passphrase kunci ssh , gitolite dokumentasi ssh , dan kunci ssh Heroku dokumentasi .
Memilih antara beberapa akun di GitHub (atau Heroku atau ...)
Jika Anda memiliki beberapa akun di tempat seperti GitHub atau Heroku, Anda akan memiliki beberapa kunci ssh (setidaknya satu per akun). Untuk memilih akun yang ingin Anda masuki, Anda harus memberi tahu ssh kunci pribadi mana yang akan digunakan .
Misalnya, anggap Anda memiliki dua akun GitHub: foo
dan bar
. Kunci ssh Anda untuk foo
is ~/.ssh/foo_github_id
dan kunci ssh Anda untuk bar
is ~/.ssh/bar_github_id
. Anda ingin mengakses git@github.com:foo/foo.git
dengan foo
akun Anda dan git@github.com:bar/bar.git
dengan bar
akun Anda . Anda akan menambahkan yang berikut ini ke ~/.ssh/config
:
Host gh-foo
Hostname github.com
User git
IdentityFile ~/.ssh/foo_github_id
Host gh-bar
Hostname github.com
User git
IdentityFile ~/.ssh/bar_github_id
Anda kemudian akan mengkloning dua repositori sebagai berikut:
git clone gh-foo:foo/foo.git # logs in with account foo
git clone gh-bar:bar/bar.git # logs in with account bar
Menghindari ssh sama sekali
Beberapa layanan menyediakan akses HTTP sebagai alternatif untuk ssh:
GitHub:
https://username:password@github.com/username/repository.git
Gitorious:
https://username:password@gitorious.org/project/repository.git
Heroku: Lihat artikel dukungan ini .
PERINGATAN : Menambahkan kata sandi Anda ke URL klon akan menyebabkan Git menyimpan kata sandi plaintext Anda .git/config
. Untuk menyimpan kata sandi Anda dengan aman saat menggunakan HTTP, gunakan bantuan kredensial. Sebagai contoh:
git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git
Hal di atas akan menyebabkan Git meminta kata sandi Anda setiap 15 menit sekali (secara default). Lihat git help credentials
detailnya.