Зауважте, що існує не менше двох звітів про помилки щодо ssh-add -d/-D
не видалення ключів:
Точне питання:
ssh-add -d/-D
видаляє лише ключі, додані вручну з gnome-keyring.
Немає можливості видалити автоматично додані ключі.
Це оригінальна помилка, і вона все одно точно присутня.
Так, наприклад, якщо у вас є дві різні автоматично завантажені ssh ідентичності, пов’язані з двома різними обліковими записами GitHub - скажімо, для роботи та для дому - немає можливості перемикатися між ними. GitHubtakes - перший, який відповідає, тому ви завжди з'являєтесь як "домашній" користувач до GitHub, не маючи можливості завантажувати речі в робочі проекти.
Дозвіл ssh-add -d
застосувати до автоматично завантажених ключів (та ssh-add -t X
змінити термін служби ключів, що автоматично завантажуються) відновив би поведінку, яку очікують більшість користувачів.
Точніше, про проблему:
Винуватець gpg-keyring-daemon
:
- Це підриває нормальну роботу ssh-агента, здебільшого просто так, що він може спливати гарне поле, в яке ви можете ввести парольну фразу для зашифрованого ключа ssh.
- І він пробирається через ваш
.ssh
каталог і автоматично додає будь-які ключі, які він знайде вашому агенту.
- І це не дозволить вам видалити ці ключі.
Як ми це ненавидимо? Не будемо рахувати шляхи - життя занадто коротке.
Помилка ускладнюється тим, що новіші клієнти ssh автоматично випробовують усі ключі вашого ssh-агента під час підключення до хоста.
Якщо їх занадто багато, сервер відхилить з'єднання.
А оскільки gnome-keyring-daemon вирішив для себе, скільки ключів ви хочете мати у свого ssh-агента, і завантажив їх автоматично, І НЕ МОЖЕ ВИ ЗДІЛИТИ ЇХ, ви тост.
Ця помилка все ще підтверджена в Ubuntu 14.04.4, нещодавно як два дні тому (21 серпня 2014 р.)
Можливе вирішення:
- Виконайте
ssh-add -D
видалення всіх доданих вами вручну ключів. Це також блокує автоматично додані ключі, але це не дуже корисно, оскільки gnome-keyring
попросить вас розблокувати їх у будь-якому випадку, коли ви намагаєтеся робити git push
.
- Перейдіть у свою
~/.ssh
папку та перемістіть усі ключові файли, крім того, з яким ви хочете ідентифікувати, в окрему папку під назвою резервного копіювання. При необхідності ви також можете відкрити морського коня і видалити звідти ключі.
- Тепер ви повинні мати можливість
git push
без проблем.
Ще одне вирішення:
Те, що ви насправді хочете зробити, - це gpg-keyring-daemon
взагалі вимкнути .
Йти доSystem --> Preferences --> Startup Applications
та зніміть SSH Key Agent (Gnome Keyring SSH Agent)
прапорці "" - вам потрібно буде прокрутити вниз, щоб знайти його.
Ви все одно отримаєте ssh-agent
, тільки тепер він поводитиметься добросовісно: жодні ключі не завантажуються автоматично, ви запускаєте ssh-add, щоб додати їх, і якщо ви хочете видалити ключі, можете. Уяви що.
Цей коментар насправді говорить про:
Рішення полягає в тому, щоб уникнути gnome-keyring-manager
запуску, що було дивно важко, нарешті досягнуто шляхом видалення дозволу на виконання програмного файлу.
Райан Люе додає ще один цікавий кутовий випадок у коментарях :
У випадку, якщо це допоможе комусь: я навіть спробував видалити id_rsa
іid_rsa.pub
файли файли взагалі, і ключ все ще з’являвся.
Виявляється, gpg-agent
кешували їх у ~/.gnupg/sshcontrol
файлі ; Мені довелося видалити їх звідти вручну.
Це той випадок , коли був доданий , як тут .keygrip
ssh-add -d
?