ГлавнаяОперационные системыLinuxКак войти на SSH-серверы с помощью ключей GPG

Как войти на SSH-серверы с помощью ключей GPG

Сохранение учетных данных для входа в систему SSH является важной частью протокола безопасности каждого администратора. Здесь мы покажем вам, как можно сократить количество ключей, которые вы храните, связав свой логин SSH с ключом GPG.

С чего начать: узнайте, как сначала получить включить вход без пароля с помощью SSH .

Зачем использовать ключи GPG для входа в SSH

Одним из преимуществ использования ключей GPG для входа по SSH является простота перемещения между хостами. Сегодня каждая операционная система имеет инструмент с графическим интерфейсом или CLI, который взаимодействует с GPG.

Зачем использовать ключи GPG для входа в SSH

spolzuyte-gpg-s-kleopatroy-linux/" title="ГНУ Клеопатра">ГНУ Клеопатра доступен для Linux и Windows, а инструмент ГнуПГ доступен как в Linux, так и в macOS.

Снимок экрана, показывающий запуск GNU Kleopatra с ключом GPG.

Еще одним преимуществом ключей GPG является то, что, в отличие от ключей SSH, их можно использовать для различных задач, связанных с безопасностью. Помимо SSH вы можете создавать дополнительные ключи для подписи электронных писем и шифрования файлов. Таким образом, ключи GPG позволяют вам объединить большую часть вашей цифровой жизни в несколько простых в обслуживании безопасных фрагментов.

Терминал, показывающий ключ GPG с несколькими подразделами.

Наконец, использование GPG поверх SSH не изменит существующую инфраструктуру на ваших удаленных компьютерах. Это связано с тем, что GPG преобразует свой ключ аутентификации в формат, «совместимый с SSH». В результате вы можете экспортировать свой «SSH-совместимый» открытый ключ GPG на SSH-сервер и немедленно использовать его для входа в систему.

Кстати, узнайте, как можно защитите свою учетную запись Github с помощью ключей SSH .

Подготовка ключа GPG для SSH

Первым шагом при использовании ключей GPG в SSH является создание нового подраздела. Это позволит вам поделиться данными аутентификации SSH, не ставя под угрозу вашу основную идентификацию GPG.

Начните с открытия запроса GPG для вашего основного ключа:

gpg --expert --edit-key YOUR-KEY@EMAIL.ADDRESS

Примечание. Адрес электронной почты для вашего основного ключа можно найти, указав содержимое связки ключей: gpg --list-keys.

Введите «addkey» в командной строке GPG, выберите «8» и нажмите Enter.

Терминал, выделяющий пользовательский шаблон RSA для подраздела GPG.

Установите для вашего подраздела значение «=A», затем нажмите Enter.

Терминал, показывающий процесс настройки возможности аутентификации для подраздела GPG.

Введите «4096» в строке размера ключа, затем нажмите Enter.

Установите разумный срок действия вашего подраздела. В моем случае я наберу «1y», чтобы мой новый подраздел был действителен только один год.

Подготовка ключа GPG для SSHn-ssh-gpg-linux-05-set-key-expiry-sample.png" alt="Терминал, показывающий значения размера и действительности ключа подраздела.">

Создайте новый подраздел GPG, набрав «y», а затем нажав Enterв окне подтверждения мастера.

Введите «quit», затем нажмите Enter, чтобы выйти из командной строки GPG.

Убедитесь, что ваш новый подраздел работает правильно, получив сведения об основном ключе:

gpg --list-keys YOUR-KEY@EMAIL.ADDRESS
Терминал, выделяющий дополнительный подраздел аутентификации под основным ключом.

Включение поддержки SSH в GPG

После того, как ваш подраздел запущен, вы можете настроить демон SSH на прием входящих запросов gpg-agent. Для этого добавьте «enable-ssh-support» в файл «gpg-agent.conf» вашего текущего пользователя:

echo "enable-ssh-support" >> ~/.gnupg/gpg-agent.conf

Откройте файл «.bashrc» в своем любимом текстовом редакторе:

nano ~/.bashrc

Вставьте следующие строки кода в конец файла.bashrc:

export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)<br>gpgconf --launch gpg-agent

Сохраните файл bashrc , затем распечатайте клавиатурную клавиатуру вашего подраздела:

gpg --list-keys --with-keygrip
Терминал, выделяющий клавиатуру подраздела GPG.

Скопируйте клавишу вашего подраздела, затем создайте файл «sshcontrol» в каталоге.gnupg:

nano ~/.gnupg/sshcontrol

Вставьте клавиатуру вашего удостоверения в новый файл и сохраните его.

Терминал, выделяющий клавиатуру подраздела в файле sshcontrol.

Примените новую конфигурацию SSH и GPG, перезагрузив файл bashrc в текущем сеансе терминала:

source ~/.bashrc

Проверьте, правильно ли работает ваш демон SSH, указав его открытый ключ SSH:

ssh-add -l
Терминал, показывающий загруженный ключ GPG для SSH.<

Экспорт и тестирование ключа GPG

Теперь у вас есть демон SSH, правильно связанный с вашим агентом GPG. Чтобы использовать его, сгенерируйте ключ экспорта SSH с помощью следующей команды:

gpg --ssh-export-key YOUR-KEY

Включение поддержки SSH в GPG

> ~/authorized_keys

Установите биты разрешения ключа экспорта так, чтобы они были доступны только для чтения и записи пользователем:

chmod 600 ~/authorized_keys

Отправьте новый файл авторизованных ключей на удаленный сервер с помощью scp:

scp ~/authorized_keys YOUR-REMOTE.SERVER.DOMAIN:~/.ssh/authorized_keys

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

sudo systemctl restart ssh.service

Нажмите Ctrl+ D, затем снова войдите на удаленный SSH-сервер. Должно появиться новое приглашение с запросом пароля вашего основного ключа GPG.

Скриншот запроса пароля GPG Gnome для SSH.

Связывание ключа GPG с демоном SSH и его экспорт на удаленный сервер — это лишь часть того, что вы можете сделать с помощью SSH. Узнайте, что можно сделать с этим замечательным программным обеспечением от использование SSH с каналами UNIX в Linux .

Изображение предоставлено: риваж через Unsplash . Все изменения и скриншоты Рамсеса Реда.

Экспорт и тестирование ключа GPG

ПОХОЖИЕ СТАТЬИ

Популярные записи