Хочу розповісти, як безпечно зберігати SSH-ключі на локальній машині, не боячись за те, що якась програма може вкрасти або розшифрувати їх.
Стаття буде корисною тим, хто так і не знайшов елегантного рішення після $HOME/.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-агент, таким чином його можна більше не зберігати на диску!
Джерело: habr.com