Сохранение учетных данных для входа в систему SSH является важной частью протокола безопасности каждого администратора. Здесь мы покажем вам, как можно сократить количество ключей, которые вы храните, связав свой логин SSH с ключом GPG.
С чего начать: узнайте, как сначала получить включить вход без пароля с помощью SSH .
Зачем использовать ключи GPG для входа в SSH
Одним из преимуществ использования ключей GPG для входа по SSH является простота перемещения между хостами. Сегодня каждая операционная система имеет инструмент с графическим интерфейсом или CLI, который взаимодействует с GPG.
Contents
Зачем использовать ключи GPG для входа в SSH
spolzuyte-gpg-s-kleopatroy-linux/" title="ГНУ Клеопатра">ГНУ Клеопатра доступен для Linux и Windows, а инструмент ГнуПГ доступен как в Linux, так и в macOS.Еще одним преимуществом ключей GPG является то, что, в отличие от ключей SSH, их можно использовать для различных задач, связанных с безопасностью. Помимо SSH вы можете создавать дополнительные ключи для подписи электронных писем и шифрования файлов. Таким образом, ключи 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.
Установите для вашего подраздела значение «=A», затем нажмите Enter.
Введите «4096» в строке размера ключа, затем нажмите Enter.
Установите разумный срок действия вашего подраздела. В моем случае я наберу «1y», чтобы мой новый подраздел был действителен только один год.
Создайте новый подраздел 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
Скопируйте клавишу вашего подраздела, затем создайте файл «sshcontrol» в каталоге.gnupg:
nano ~/.gnupg/sshcontrol
Вставьте клавиатуру вашего удостоверения в новый файл и сохраните его.
Примените новую конфигурацию SSH и GPG, перезагрузив файл bashrc в текущем сеансе терминала:
source ~/.bashrc
Проверьте, правильно ли работает ваш демон SSH, указав его открытый ключ SSH:
ssh-add -l
Экспорт и тестирование ключа 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 с демоном SSH и его экспорт на удаленный сервер — это лишь часть того, что вы можете сделать с помощью SSH. Узнайте, что можно сделать с этим замечательным программным обеспечением от использование SSH с каналами UNIX в Linux .
Изображение предоставлено: риваж через Unsplash . Все изменения и скриншоты Рамсеса Реда.