В этой заметке хочу поделиться тем, как переношу SSH-ключи при смене дистрибутива или при переезде с одного компьютера на другой. Изложенный ниже алгоритм использую уже давно, потому можно действительно сказать, что он испытан временем и практикой.
Что такое SSH-ключи?
Мы привыкли, что доступ к чему-либо осуществляется при наличии пары логин/пароль. Но данный способ не является безопасным. Поэтому вместо него можно использовать, так называемый, SSH-доступ. Суть этого доступа заключается в том, что имеется пара ключей - открытый (публичный) и закрытый (приватный) Да, ровно как и в случае с ключами GPG, про которые я рассказывал в материале про корпоративный и личный менеджер паролей). Познакомиться с ним вы можете по ссылке ниже.
Выбираем корпоративный и персональный менеджеры паролей
Оба эти ключа являются случайным набором цифр и букв, которые используются для передачи и шифрования информации. Когда вы подключаетесь к другому компьютеру по интернету, то он может иметь у себя ваш открытый ключ и знать, что подключенная машина является доверенной. SSH-ключи часто используются для подключения к серверам и некоторым сервисам (например, Github).
В общем, если подытожить, то SSH-ключи - это способ связи между компьютерами для передачи зашифрованной информации, который намного безопаснее, чем связка логина и пароля.
Генерация SSH-ключей
Если у вас нет пары ключей, то ее нужно сгенерировать. Для этого воспользуемся терминалом, в который введем следующую команду:
ssh-keygen -t rsa
В ответ терминал спросит вас о том, где нужно хранить сгенерированные ключи. По-умолчанию, они хранятся в папке .ssh в домашней директории пользователя. После нужно будет ввести пасс-фразу, которая защитит ваш закрытый (публичный) ключ от неправомерного доступа.
Опять-таки, рекомендую запомнить пасс-фразу, не нужно записывать ее куда-то или сохранять в отдельный файл, который будет хранится рядом с закрытым ключом.
После ввода пасс-фразы у вас папке .ssh в домашней директории появятся два файла id_rsa.pub (публичный, открытый ключ) и id_rsa (приватный, закрытый ключ).
Содержимое первого файла доступно для передачи тем, с кем вы планируете обмениваться информацией, приватный ключ передавать кому-либо нельзя. Именно два этих файла и нужно хранить, чтобы в любой момент на новой системе или ПК их использовать.
Перенос ключей на другую систему или компьютер
У меня SSH-ключи хранятся в приватном гитлаб-репозитории, откуда я могу в любой момент их скачать и использовать. После установки новой системы или необходимости настроить еще один компьютер для работы (например, на всякий экстренный случай помимо персонального компьютера у меня есть ноутбук) я выполняю следующую последовательность действий:
- Создаю в домашней директории папку .ssh (помним, что папка или файл с точкой в начале названия являются скрытыми)
- Копирую туда файлы id_rsa.pub и id_rsa и меняю права доступа к ним, вводя в терминале следующие команды
sudo chmod 700 ~/.ssh - устанавливаю права доступа к папке .ssh
sudo chmod 644 ~/.ssh/id_rsa.pub - устанавливаю права доступа к публичному (открытому) ключу
sudo chmod 600 ~/.ssh/id_rsa - устанавливаю права доступа к приватному (закрытому) ключу
- После в этом же терминале ввожу команду
ssh-add
- Используя дистрибутив Archlinux столкнулся с тем, что перед вводом команды ssh-add нужно ввести в терминале
eval `ssh-agent -s`
После проделанных выше действий в систему будут скопированы ваши SSH-ключи и вы сможете ими пользоваться так, как раньше.
Может существуют иные, быстрые способы, копирования ранее сохраненных SSH-ключей, но я делаю так, как описал. Если иные методы есть, то расскажите о них в комментариях.
Не забываем подписываться на канал и ставить лайки. Мне важна адекватная обратная связь от подписчиков и читателей!