Github, ekrandaki talimatları uygularken ve yeni bir repo atarken neden kullanıcı adı / şifre istiyor?


299

Github'da bir kuruluşun sahibiyim ve sadece bir repo oluşturdum ve itmeyi denedim, ancak SSH'yi iyi yapabilsem bile kullanıcı adımı soran bir sorunla karşılaşıyorum:

$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
 6 files changed, 59 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 main.js
 create mode 100644 package.json
 create mode 100644 readme.markdown
 create mode 100644 views/index.ejs
 create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':

Neyi yanlış yapıyorum? Bu daha önce başıma hiç gelmedi ama son zamanlarda git 1.7.10.3'e geçtim.

Yanıtlar:


663

HTTP kullanma SSH yerine SSH kullanmayın

değişiklik

https://github.com/WEMP/project-slideshow.git 

için

git@github.com:WEMP/project-slideshow.git

bunu .git/configdosyada yapabilirsin


1
Teşekkürler! Ben stackoverflow.com/a/10126412/29347 okuduktan sonra bunu anladım , github normalde bana biraz karışıklığa neden olan HTTPS olarak bir repo uzaktan verdiğini sanmıyorum.
Kit Sunde

2
Klon URL'nizi kopyaladığınız düğmeyi tıklayarak bu seçeneği değiştirebilirsiniz.
Derek Adair

MacOS için. En son macos sürümüne geçtiğinizde sorun. stackoverflow.com/a/39616339/1445102
1Rhino

12
Ayrıca git remote set-url origin git@github.com:user/repo.git, stackoverflow.com/questions/10126381/…
ve

54

Ben de aynı sorunu vardı ve neden https ile klonlanmış bir bitbucket repo ile olmadığını merak etti. Biraz bakarak BB repo için yapılandırma kullanıcı adımı içeren bir URL vardı bulundu. Bu yüzden GH repo için yapılandırmayı el ile düzenledim ve voila, artık kullanıcı adı istemi yok. Windows'dayım.

Düzenle your_repo_dir/.git/config(hatırla: .gitklasör gizli)

Değişiklik:

https://github.com/WEMP/project-slideshow.git

için:

https://*username*@github.com/WEMP/project-slideshow.git

Dosya 'yı kaydet. Bir Do git pullbunu test etmek.

Bunu yapmanın uygun yolu, muhtemelen ayarı düzenlemek için git bash komutlarını kullanmaktır, ancak dosyayı doğrudan düzenlemek bir sorun gibi görünmüyordu.


Bu iyi bir nokta, kullanıcı adını eklerseniz, OS anahtar zinciri tarafından ele alınacaktır (en azından OSX'te ve görünüşe göre Windows'da da). Dosyayı not defteri veya vim / emacs / nano / vi ile düzenleme arasında bir fark yoktur, teknik züppelik hakkında çok fazla endişelenmem, zaten sadece düz bir metin dosyası.
Kit Sunde

21

İşte bunun resmi bir cevabı :

Git, GitHub ile her etkileşimde bulunduğunuzda sizden bir kullanıcı adı ve şifre isterse, muhtemelen deponuz için HTTPS klon URL'sini kullanıyorsunuzdur.

Bir HTTPS uzak URL kullanmanın bazı avantajları vardır: SSH'den daha kolaydır ve genellikle katı güvenlik duvarları ve proxy'ler aracılığıyla çalışır. Ancak, her depo çekişinizde veya itişinizde GitHub kimlik bilgilerinizi girmenizi ister.

Git'i şifrenizi sizin için saklayacak şekilde yapılandırabilirsiniz. Bunu ayarlamak istiyorsanız, şifre önbelleğe alma ayarlarını okuyun .


1
Teşekkürler. Github ile buraya gelirseniz kurulumun daha kolay olmadığını
söyleyebilirim

Bu bir sorunun cevabı, çünkü soru NEDEN ?
eli

14

@ Ianl'ın cevabını geliştirmek ,

2 adımlı kimlik doğrulama etkinse şifre yerine jeton kullanmanız gerektiği anlaşılıyor. Burada bir jeton oluşturabilirsiniz .

Hem kullanıcı adı hem de şifre istemlerini devre dışı bırakmak istiyorsanız URL'yi aşağıdaki gibi ayarlayabilirsiniz -

git remote set-url origin https://username:password@github.com/WEMP/project-slideshow.git

URL'nin hem kullanıcı adı hem de şifre olduğunu unutmayın. Ayrıca .git/configdosya geçerli ayarlarınızı göstermelidir.


20200128 Güncellemesi:

Parolayı yapılandırma dosyasında saklamak istemiyorsanız, kişisel simgenizi oluşturabilir ve parolayı simge ile değiştirebilirsiniz. İşte bazı ayrıntılar .

Bu şekilde görünecektir -

git remote set-url origin https://username:token@github.com/WEMP/project-slideshow.git

Bu güvenli mi? Birisi bu bilgilere bilgisayarımdan erişebilir mi?
Akaisteph7

Evet, .git/configdosyada düz metin olarak saklandıkları için bilgisayarınızdan erişebilirler
kaushal

11

ek bir not:

zaten bir uzaktan kumanda eklediyseniz ($ git remote add origin ...) ve belirli bir uzaktan kumandayı değiştirmeniz gerekiyorsa, yeni ve geliştirilmiş repo URL'sini yeniden eklemeden önce ( "kaynak", uzak repo için kullanılan addı).

orijinal örneği kullanmak için:

$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git remote rm origin
$ git remote add origin https://github-username@github.com/WEMP/project-slideshow.git

4
Uzaktan kumandayı çıkarmanız gerekmez. URL'yi değiştirebilirsiniz:git remote set-url origin https://github-username@github.com/WEMP/project-slideshow.git
shovavnik

8

HTTPS kullanıyorsanız, URL'nizin doğru olduğundan emin olun. Örneğin:

$ git clone https://github.com/wellle/targets.git
Cloning into 'targets'...
Username for 'https://github.com': ^C

$ git clone https://github.com/wellle/targets.vim.git
Cloning into 'targets.vim'...
remote: Counting objects: 2182, done.
remote: Total 2182 (delta 0), reused 0 (delta 0), pack-reused 2182
Receiving objects: 100% (2182/2182), 595.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1044/1044), done.

1
Harika bir nokta! URL'de bir yazım hatası varsa, deponun bulunmadığı söylenmek yerine 'Kullanıcı Adı' istenir.
dmitrii

5

Bir github.com yöneticisinden aşağıdakileri belirten bir e-posta aldım: "Normalde, kullanıcılara SSH protokolünü kullanmak için belirli bir nedenleri olmadıkça HTTPS URL'sini kullanmalarını öneriyoruz. HTTPS güvenli ve daha kolay bir şekilde kurulur, bu yüzden HTTPS yeni bir depo oluşturulduğunda bunu varsayılan olarak kullanırız. "

Şifre istemi gerçekten normal github.com giriş bilgilerini kabul etmez. Şifre önbelleklemenin nasıl ayarlanacağına ilişkin bir öğretici https://help.github.com/articles/set-up-git#password-caching adresinde bulunabilir . Öğreticideki adımları izledim ve benim için çalıştı.



4

Çünkü HTTPS yöntemini kullanıyorsunuz . HTTPS , her itmeye veya çekmeye çalıştığınızda hesap erişiminizi yazmanızı gerektirir , ancak SSH adı verilen bir yol da vardır ve size bu bilgisayar için hesabımla izin verdiğimi ve asla sormadığınızı söylemenizi sağlar herhangi bir kullanıcı erişimi hakkında tekrar beni . Kullanmak için SSH anahtarı oluşturmanız ve Github hesabınıza yalnızca bir kez eklemeniz gerekir . Bunu yapmak için şu adımları takip edebilirsiniz.

Github için SSH anahtarı nasıl oluşturulur


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.