Pull to refresh

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

Reading time2 min
Views32K
Original author: kvaps


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


Статья будет полезна тем, кто так и не нашел элегантного решения после паранои в 2018 и продолжает хранить ключи в $HOME/.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-агент, таким образом его можно больше не хранить на диске!

Tags:
Hubs:
Total votes 26: ↑22 and ↓4+18
Comments28

Articles