Забыли пароль для зашифрованного ключа SSH, который находится в моем (gnome) агенте SSH. Как мне извлечь незашифрованную версию? [closed]

Хорошо, у меня есть зашифрованный закрытый ключ ssh, обеспечивающий доступ к серверу. Мой рабочий стол Ubuntu GNOME имеет встроенный графический агент ssh (морской конек v3.2.2). Этот ключ ssh находится в этом агенте ssh, и он автоматически разблокируется, когда я вхожу на свой рабочий стол. Я могу подключиться по ssh к серверу (который использует этот зашифрованный закрытый ключ ssh) нормально, без необходимости вводить что-либо.

Однако я забыл пароль для этого ключа ssh.

Есть ли способ извлечь (из агента ssh) незашифрованный закрытый ключ ssh? Поскольку я могу войти на сервер, вставив что-нибудь, очевидно, что что-то на моем компьютере может получить доступ к незашифрованной версии этого ключа, поэтому у меня должна быть возможность извлечь незашифрованную версию, не так ли?

4
задан 8 March 2013 в 14:01
3 ответа

По замыслу, вы не можете. Вся идея парольной фразы состоит в том, чтобы защитить секретный пароль от посторонних глаз при доступе к диску.

2
ответ дан 3 December 2019 в 03:19

Я думаю, что пароль вашего ssh-ключа находится в вашей связке ключей gnome. Этот может помочь вам его извлечь.

2
ответ дан 3 December 2019 в 03:19

Я не уверен, что правильно понял ваш вопрос:

Я не понимаю, почему удаленный сервер «использует этот зашифрованный закрытый ключ ssh», вы говорите об этом, поскольку это тот же зашифрованный закрытый ключ на вашем рабочем столе ?? Почему??

Если я опущу эту фразу (и удаленный сервер просто имеет ваш PUBLIC ключ в соответствующем файле authorized_keys удаленного входа в систему), то:

  • вы (предположительно) забыли кодовую фразу вашего локального закрытого ключа
  • у вас есть агент, который запускается при загрузке и автоматически предоставляет вам доступ к ключу (т. е. он может использовать его для предоставления доступа, когда вы подключаетесь через ssh к удаленному серверу, у которого, вероятно, есть ваш открытый ключ). Таким образом, агент знает парольную фразу и может расшифровать ваш локальный закрытый ключ.

    • вы уверены, что закрытый ключ зашифрован? (вы можете остановить агент и попробовать:

      ssh -i / path / to / theprivatekeyудаленный пользователь @ удаленный сервер

    • , если ключ действительно зашифрован: агент, который запускается при загрузке, очевидно, может предоставить свой пароль. Я не знаю этого агента, но, возможно, он через файл конфигурации (надеюсь, что нет), и, возможно, через какой-то другой механизм (сам может иметь другое шифрование, которое содержит частные парольные фразы? Каким-то образом защищенным, возможно, через ваши собственные учетные данные для входа ?). Но: как только он загружен и используется (то есть, по крайней мере, при доступе к удаленному серверу ssh), он имеет в какой-то момент незашифрованный закрытый ключ ssh в памяти. На этом этапе вы можете прочитать его, если у вас есть root-доступ к вашей локальной машине, получив доступ к оперативной памяти (но вам нужно будет найти, как и где искать).

Надеюсь, это поможет (и, пожалуйста, поясните неясные части в вашем вопрос или исправьте мои предположения!)

Edit: другие варианты, и намного проще: этот агент предоставляет вам доступ:Файл authorized_keys remoteuser @ remoteserver . ДОПОЛНИТЕЛЬНО к текущему (тот, который использует ваш агент). Так что вы всегда можете использовать агент, а также использовать новую (локальную) пару закрытых (удаленных) открытых ключей. (прочтите о ssh и о том, как создать эти ключи и что делать с открытым ключом (т.е. поместите его в места, куда вам нужно войти) и закрытым (то есть: держите его БЕЗОПАСНЫМ, ТОЛЬКО ДЛЯ ВАШИХ ГЛАЗ, НЕ ЧИТАТЬ В МИРЕ, даже если зашифровано парольной фразой).

1
ответ дан 3 December 2019 в 03:19

Теги

Похожие вопросы