Sebagai pengguna root, anda boleh berjaya menggunakan git untuk menolak dan menarik tanpa kata laluan.
Nama projek baharu: newstart.
Berikut ialah tetapan untuk pengguna root.
su root
ssh-keygen -t rsa -f /root/.ssh/id_rsa.github -P ''
Tampal id_rsa.github.pub ke halaman web githhub kunci ssh.
git config --global user.name "someone"
git config --global user.email "sbd@gmail.com"
git config remote.origin.url git+ssh://git@github.com/someone/newstart.git
ssh -T git@github.com
git clone git+ssh://git@github.com/someone/newstart.git /tmp/newstart
Mengklon ke '/tmp/newsstart'...
Pengguna root boleh digunakan dengan jayanya tanpa sebarang masalah.
Sekarang sediakan pengguna biasa debian8
dan semua tetapan tadi akan ditetapkan semula.
su debian8
ssh-keygen -t rsa -f /home/debian8/.ssh/id_rsa.github -P ''
Tampal kunci ini id_rsa.github.pub ke kunci ssh dalam halaman web githhub.
git config --global user.name "someone"
git config --global user.email "sbd@gmail.com"
git config remote.origin.url git+ssh://git@github.com/someone/newstart.git
#注意,在普通用户下,无法使用config.
error: could not lock config file .git/config: Permission denied
sudo git config remote.origin.url git+ssh://git@github.com/someone/newstart.git
ssh -T git@github.com
Permission denied (publickey).
我通过-i 参数,可以让这个普通用户连接上github.
ssh -i ./id_rsa.github.pub -vT git@github.com
You've successfully authenticated, but GitHub does not provide shell access.
可惜,连接上没有用,无法clone.
git clone git+ssh://git@github.com/someone/newstart.git /tmp/newstart
Cloning into '/tmp/newstart'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
Bagaimana saya boleh mengubah suai langkah saya untuk pengguna biasa? Apakah yang menyebabkan perkara ini berlaku?
Adalah disyorkan untuk menyemak pembolehubah persekitaran HOME anda. Mungkin anda telah mengubahnya sebelum ini, menyebabkan git tidak menemui
.gitconfig
sebagai tambahan, anda boleh menyemak sama ada terdapat.gitconfig
dalam direktori rumah pengguna anda. Gunakan dalam direktori pengguna:Jika tiada
.gitconfig
dipaparkan, ini mungkin kerana git tidak dapat mencarigitconfig
dalam direktori utama pengguna semasa.Atau anda boleh menggunakan perintah
locate
untuk mencari.gitconfig
,Jika malangnya, anda tidak dapat mencarinya menggunakan locate, kemudian gunakan
updatedb
untuk mengemas kini pangkalan data locate Jika cakera keras anda cukup pantas, ia boleh disiapkan dengan cepat.Sudah tentu anda juga boleh menggunakan perintah
find
, tetapi kelajuannya lebih perlahan:Selepas operasi di atas mendapat keputusan, anda boleh menyemak sama ada laluan fail
.gitconfig
adalah hasil daripadaecho $HOME
Jika tidak, ini bermakna masalahnya adalah pembolehubah persekitaran $HOME anda untuk menetapkan semula kepada anda Laluan ke direktori rumah pengguna semasa.