Храним SSH-ключи безопасно

Храним SSH-ключи безопасно



Хочу рассказать как безопасно хранить SSH-ключи на локальной машине, не боясь того, что какое-то приложение может украсть или расшифровать их.


Для решения данной проблемы предлагаю использовать KeePassXC, который является одним из лучших менеджеров паролей, он использует сильные алгоритмы шифрования, а также имеет встроенный SSH-агент. Это дает возможность безопасно хранить все ключи прямо в базе паролей и автоматически добавлять их в систему при её открытии. Как только база будет закрыта, использование SSH-ключей также станет невозможным.


Первым делом добавим автозапуск SSH-агента при входе в систему, для этого откройте ~/.bashrc в вашем любимом редакторе и добавьте в самый конец:

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
    echo "Initialising new SSH agent..."
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
    . "${SSH_ENV}" > /dev/null
    #ps ${SSH_AGENT_PID} doesn't work under cywgin
    ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi


После чего нам нужно включить поддержку в KeePassXC:

Инструменты --> Параметры --> SSH-агент --> Включить SSH-агент



На этом настройка завершена, теперь попробуем добавить новый SSH-ключ в KeePassXC:

Нажимаем на иконку с ключом, затем заполняем данные:



Если ключ защищен паролем, укажите так-же пароль к нему
На вкладке Дополнительные загружаем вложение с нашим id_rsa:



На вкладке SSH-агент, отметим:

  • Добавить ключ в агент при открытии/разблокировке базы данных
  • Убрать ключ из агента при закрытии/блокировке базы данных


Далее выберем наш ключ (id_rsa) во вложении
И нажмем кнопку Добавить в агент:



Теперь при запуске KeePassXC ключ будет автоматически добавляться в SSH-агент, таким образом его можно больше не хранить на диске!

Report Page