Использование зашифрованных секретных ключей PKCS#8 с ssh-агентом
Я настраиваю новую систему Ubuntu (12.04.2 LTS) для разработки Rails и хотел использовать зашифрованный закрытый ключ SSH согласно этой статье. Я могу настроить стандартную пару ключей ssh, используя инструкции на GitHub, и все работает нормально, но когда я следую инструкциям, приведенным в первой статье, я больше не могу использовать ssh для входа в систему. Вместо этого я получаю сообщение об ошибке "Агент признал невозможность подписать используя ключ." Я обнаружил ошибку (не могу опубликовать ссылку b/c с низкой репутацией, #328127), которая может быть связана; Меня не спрашивают о секретной фразе моего закрытого ключа, поэтому проблема в том, что я изменил закрытый ключ после создания. Попытка добавить новый ключ вручную, используя ssh-add
только в результате ошибка возвращается дважды. Я не уверен, как установить $SSH_AUTH_SOCK
в ноль, иначе я бы тоже попробовал. Любая помощь будет принята с благодарностью, спасибо!
3 ответа
Отключение SSH_AUTH_SOCK - это обходной путь, но при этом отключается ssh-agent, который некоторые люди все еще могут захотеть использовать.
Похоже, что ssh-agent не может ничего подписать закрытым ключом, потому что он не расшифровывает его должным образом при автоматическом добавлении этого ключа в связку ключей.
Если вы генерируете стандартный файл идентификатора id_rsa в ~/.ssh или сохраняете закрытый ключ вместе со своим открытым ключом в ~/.ssh, ssh-agent автоматически добавляет его в свой список ключей. Но при этом он не запрашивает парольную фразу, он никогда не расшифровывает ключ.
Решение состоит в том, чтобы добавить ключ вручную. Удалите все зашифрованные ключи pkcs#8 из ssh-agent с помощью ssh-add -D и переместите файлы закрытого + открытого ключа из ~/.ssh. перезагрузите компьютер или ssh-agent -k, затем верните ваш зашифрованный ключ pkcs#8 PRIVATE в ~/.ssh. Используя ssh-add, запрашивается пароль для расшифровки. Теперь ssh-agent может получить доступ к незашифрованному закрытому ключу и, следовательно, подписать его.
(через Деймона Дрансфельда)
Извините за быстрый ответ, $SSH_AUTH_SOCK
исправление сработало для меня; Я нашел инструкции в другой ветке ошибок. В случае, если кто-то еще застрял, набрав export SSH_AUTH_SOCK=0
устраняет проблему Надеюсь, это поможет!
Если вы предпочитаете, вы можете также заменить агент ключа SSOME GNOME на тот, который предоставляется OpenSSH, а затем снова добавить все ключи, как описано в этой статье.