İçin en az iki hata raporu olduğunu unutmayın ssh-add -d/-D değil anahtarları kaldırarak:
Kesin mesele:
ssh-add -d/-Dyalnızca manuel olarak eklenen anahtarları gnome-keyring'den siler .
Otomatik olarak eklenen anahtarları silmenin bir yolu yoktur.
Bu orijinal hata ve hala kesinlikle mevcut.
Örneğin, iki farklı GitHub hesabıyla ilişkili iki farklı otomatik olarak yüklenen ssh kimliğiniz varsa - iş ve ev için - bunlar arasında geçiş yapmanın bir yolu yoktur . GitHubs eşleşen ilk kişiyi alır, böylece her zaman işleri projelere yüklemek için bir yol olmadan GitHub'a 'ev' kullanıcısı olarak görünürsünüz.
Otomatik olarak yüklenen anahtarlara ssh-add -duygulanmasına izin vermek (ve otomatik olarak yüklenen anahtarların ssh-add -t Xömrünü değiştirmek), çoğu kullanıcının beklediği davranışı geri yükler.
Daha doğrusu, konu hakkında:
Suçlu gpg-keyring-daemon:
- Ssh-agent'ın normal çalışmasını bozar, çoğunlukla şifrelenmiş bir ssh anahtarının parolasını yazabileceğiniz güzel bir kutu açabilir.
- Ve
.sshdizininizde paws ve bulduğu anahtarları aracınıza otomatik olarak ekler.
- Ve bu anahtarları silmenize izin vermez.
Bundan nasıl nefret ediyoruz? Yolları saymayalım - hayat çok kısa.
Yeni ssh istemcileri bir ana bilgisayara bağlanırken ssh-agent'ınızdaki tüm anahtarları otomatik olarak denediğinden bu hata artar.
Çok fazla varsa, sunucu bağlantıyı reddeder.
Ve gnome-keyring-daemon, ssh-agent'ınızın kaç anahtarına sahip olmasını istediğinize karar verdiğinden ve bunları otomatik olarak yüklediğinden VE SİZİ SİLMEMEKTEDEN, tost edersiniz.
Bu hata, iki gün önce olduğu gibi Ubuntu 14.04.4'te de doğrulandı (21 Ağustos 2014)
Olası bir geçici çözüm:
- Do
ssh-add -Dtüm silmek için elle ilave anahtarlar. Bu aynı zamanda otomatik olarak eklenen anahtarları da kilitler, ancak çok fazla kullanmaz, çünkü bir gnome-keyringşey yapmaya çalıştığınızda yine de kilidini açmanızı isteyecektir git push.
~/.sshKlasörünüze gidin ve tanımlamak istediğiniz dosya dışındaki tüm anahtar dosyalarınızı yedekleme adı verilen ayrı bir klasöre taşıyın. Gerekirse denizatı açabilir ve anahtarları oradan silebilirsiniz.
- Şimdi
git pushsorunsuz bir şekilde yapabilmelisiniz .
Başka bir geçici çözüm:
Gerçekten yapmak istediğiniz şey gpg-keyring-daemontamamen kapatmaktır .
Git System --> Preferences --> Startup Applicationsve " SSH Key Agent (Gnome Keyring SSH Agent)" kutusunun işaretini kaldır - bulmak için aşağı kaydırman gerekecek.
Yine de bir alacaksınız ssh-agent, ancak şimdi akılcı davranacak: otomatik olarak yüklenen anahtar yok, bunları eklemek için ssh-add komutunu çalıştırıyorsunuz ve anahtarları silmek istiyorsanız, bunu yapabilirsiniz. Bunu hayal edin.
Bu yorumlar aslında şunları önerir:
Çözüm, gnome-keyring-managerprogram dosyasının yürütme iznini kaldırarak nihayetinde elde edilmesi garip bir şekilde zor olan başlangıçtan korumaktır .
Ryan Lue yorumlara ilginç bir köşe davası daha ekliyor :
Bu kimseye yardımcı olursa: id_rsave id_rsa.pubdosyaları tamamen silmeyi denedim ve anahtar hala görünüyordu.
Görünüşe göre gpg-agentonları bir ~/.gnupg/sshcontroldosyada önbelleğe alıyordu ; Onları oradan manuel olarak silmek zorunda kaldım.
Yani durumdur eklenmiştir burada olduğu gibi .keygrip
ssh-add -d?