İçin en az iki hata raporu olduğunu unutmayın ssh-add -d/-D
değil anahtarları kaldırarak:
Kesin mesele:
ssh-add -d/-D
yalnı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 -d
uygulanması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
.ssh
dizininizde 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 -D
tü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
.
~/.ssh
Klasö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 push
sorunsuz bir şekilde yapabilmelisiniz .
Başka bir geçici çözüm:
Gerçekten yapmak istediğiniz şey gpg-keyring-daemon
tamamen kapatmaktır .
Git System --> Preferences --> Startup Applications
ve " 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-manager
program 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_rsa
ve id_rsa.pub
dosyaları tamamen silmeyi denedim ve anahtar hala görünüyordu.
Görünüşe göre gpg-agent
onları bir ~/.gnupg/sshcontrol
dosyada önbelleğe alıyordu ; Onları oradan manuel olarak silmek zorunda kaldım.
Yani durumdur eklenmiştir burada olduğu gibi .keygrip
ssh-add -d
?