2010-10-02 27 views
36

Başımdan GitHub için bir ssh anahtarını oluşturduğumu göremiyorum. Oldukça uzun bir süre çalışıyordum ama neyin değiştiğini anlayamıyorum. O zamandan beri önceki SSH anahtarlarını GitHub hesabımdan kaldırdım. Bir SSH anahtarı (http://help.github.com/mac-key-setup) oluşturmak ve "ssh [email protected]" test etmek için talimatları birkaç kez uyguladıktan sonra aşağıdakileri elde ederim; "Kanalda PTY ayırma isteği başarısız oldu"

PTY allocation request failed on channel 0 ERROR: Hi...successfully authenticated...GitHub does not provide shell access...Connection to github.com closed.

Ben troubleshooting guide inceledim ve benim ssh dizini bir yapılandırma dosyası yoktu fark ettim. Oluşturulduktan sonra, IdentityFile satırında yerel yola hangi veya nasıl girileceğinden emin değilim. Benim durumumda bunun gerekli olup olmadığından bile emin değilim.

You may also need to update the permissions on your .ssh folder and its contents. The SSH application will ignore secret files that are too permissive.

$ chmod 700 ~/.ssh 
$ chmod 600 ~/.ssh/* 

Host github.com 
    User git 
    Hostname github.com 
    PreferredAuthentications publickey 
    IdentityFile [local path to private key half of github public key you provided] 

If your github authentication information is different from your machine account information, you’ll need to modify your ssh configuration file.

Create or open the file at ~/.ssh/config Add the following lines:

Ben de sonuçları burada Ne söyleyebilirim farklı http://gist.github.com/607283 hiçbir şey görülebilir ssh -v [email protected] koştu.

Neyi yanlış yaptığımı biliyor musunuz?

+23

Normal etkileşimli erişim sağlamayan bir hizmete giriş yapmak için komut satırı * ssh * kullanırken “PTY ayırma isteği başarısız” uyarısı zararsızdır. Git-over-SSH'nin bir tty'ye ihtiyacı yoktur ve GitHub’un SSH hizmeti, gelen bağlantılar için bir tane ayırmayı reddedecek şekilde yapılandırılmıştır. * Ssh * 'ssh -T git @ github.com' ile bir tty sormaya değil. Bir sonraki mesajda belirttiğiniz gibi, kimlik doğrulamanız gayet iyi çalışıyor. GitHub'u SSH üzerinden GitHub'a erişmek için gerçekten herhangi bir sorun mu yaşıyorsunuz? –

+0

Teşekkürler Chris - en iyi açıklama Henüz duymadım. Yorumunuzun ilk bölümünü anlıyorum. Ben ilgili sorun şu ki ben yeni bir depo ve "git itme kökeni ustası" oluşturmaya çalıştığımda aşağıdaki hata "Ben: [email protected]/myapp için [email protected]/myapp izin reddi. Önemli: uzak uç beklenmedik şekilde asılı "Bu yüzden süreçte nerede başarısız olduğumu bilmiyorum ... Bunun benim ssh anahtarım olduğunu düşündüm. Ssh -T [email protected]'u önerdiğiniz gibi kullanmaya devam etmeli miyim? – Shawn

+0

"Başarılı bir şekilde doğrulanmış" mesajını görüyoruz, bu nedenle GitHub'a doğrudan * ssh * yapmayı denemeye gerek yok. “-T” seçeneği, “PTY ayırma” mesajının bir zor başarısızlık göstermediğini gösterme seçeneğinden bahsetmiştim (“-T” ile çalışıp çalışmadığınızı da aynı “başarıyla doğrulanmış” mesajını alırsınız). Gerçek problem hakkında daha fazla cevap yazacağım. –

cevap

34

Soruyla ilgili yorumlarda açıklandığı gibi, "PTY ayırma isteği başarısız" GitHub kimlik doğrulamasıyla ilgili olarak kırmızı bir ringa balığıdır (sundukları tek SSH hizmeti olmadığında etkileşimli olarak GitHub'a giriş yapmaya çalışmanın sonucudur. -interactive Git-over-SSH, kimlik doğrulama çalışıyor, sadece etkileşimli, "kabuk" hizmeti sunmuyorlar).


soru soruldu kişi yorumunda bu yazmış: Bu gerçek bir sorun olma olasılığı görünüyor

I guess the related problem is that when I try to create a new repository and "git push origin master" I return the following "Error: Permission to [email protected]/myapp denied to myusername. Fatal: the remote end hung up unexpectedly"

. Bu, uzak bir origin adının, bir GitHub deposuna doğru bir şekilde işaret edecek şekilde yapılandırılmamış olduğunu gösteriyor gibi görünüyor.

git remote show -n origin çıkışını kontrol edin. Muhtemelen “Getir URL” ve “Push URL” aynıdır. Her ikisi de bu gibi görünmelidir:

[email protected]:git-user-name/repository-name 

hesabınızın kullanıcı adı veya onunla ilişkili e-posta adresini kullanabilirsiniz web'de GitHub'dan giriş yaparken. Depolara basarken (veya özel depolardan alma) gerçek kullanıcı adınızı kullanmanız gerekir (bir e-posta adresi çalışmayacaktır). E-posta adresinizi sadece GitHub kullanıcı adınız yerine orada kullanıyor gibi görünüyor. Bunu düzeltmek için, uzaktan kumandanın URL'sini yeniden:

Eğer giriş yaptıktan sonra adınız GitHub web sayfalarında birçok yerde görüntülenir
git remote set-url origin [email protected]:github-username/repository-name 

o Gravatarınızı ve “Dashboard” bağlantısını arasındadır bulmak için en kolay yer. sayfa üstbilgisinde (yapılandırılmış bir gravatar yoksa siluet simgesini görürsünüz). Aynı konum, herkese açık profil sayfanıza bağlanır; Bu sayfanın URL’si de kullanıcı adınızla bitmelidir.

+0

@ chris-johnsen Doğru dizindeyken, "git remote set" yazdım -url menşei ... "talimat olarak ama geri dönüş" hatası: Bilinmeyen alt komut: set-url "ve git uzak için alternatif komutlar sağlar, bunların hiçbiri ilgili görünmüyor. Bunun yerine "git config --global user.name myusername ve git config --global user.email [email protected]" kullanmam gerekiyor mu? – Shawn

+0

@Shawn: Ah, 'uzak set-url 'sadece Git 1.7.0 ve üstü sürümlerde. Sadece şunu yapalım remote.origin.url '[email protected]: github-kullaniciadi/repository-name' 'yapilandirmasi yapin veya' git config -e' ile yapilandirin (1.6.3 ve üstü ya da sadece 'vim .git/config' ☺). 'User.name' ve 'user.email' değerleri, yalnızca itme yaparken değil, işlem yaparken kullanılır. –

+0

@ chris-johnsen Yardımlarınız ve sabrınız için teşekkür ederiz. Sağladığınız arka plan, iletişim kuramadığım soruya açıklık kazandırdı. İşte fark ettiğim ve sıraladığım ... 1.) orijinal deposu sildi, 2.) Git'in en son sürümüne yükseltildi, 3.) Yorumlarınıza paralel olarak, RailsTutorial.org rehberi, Pro Git ve GitHub Deposu oluşturma talimatları yaptıktan sonra yanlış kullanıcı adı girdiğimi fark ettim --global user.name "kullanıcı adımım" ve 4.) Sonunda GitHub'a itmek mümkün! Yardımın için tekrar teşekkürler! – Shawn

İlgili konular