1Password for SSH изменил то, как я работаю

1Password для SSH был представлен миру в прошлом месяце. Я использовал его с тех пор, как он был доступен для внутреннего бета-тестирования. Я знал, что он улучшит безопасность моих конечных точек. Я не ожидал, что оно изменит то, как я генерировал, хранил и использовал ключи SSH. и то, как я работаю.

Позвольте мне сделать шаг назад.

В первый раз я использовал SSH, подключаясь к серверу linux в глобальной лаборатории колледжа с помощью PuTTY. Я использовал имя пользователя и пароль для аутентификации и никогда по-настоящему не ценил магию, которая заставляла все это работать. Это был шаг в сторону от привычного мира FTP и RDP.

Позже SSH стал неотъемлемой частью моего опыта разработчика, когда моя работа перешла с Subversion на Git. В то время я был младшим разработчиком, и мне с трудом удалось сгенерировать SSH-ключ. Другой разработчик в команде сгенерировал для меня пару ключей RSA и поделился ею на флешке. Прошло несколько лет, прежде чем я понял, что это менее чем идеальный вариант.

В конце концов, я вошел в привычку. Я приобретал новый ноутбук, генерировал закрытый ключ — иногда я даже использовал кодовую фразу — и загружал новый ключ во все сервисы, которые использовал (GitHub, VPS и т.д.). Я использовал схему «один ключ для каждого устройства» и повторял этот процесс для телефона и других устройств. Время от времени я доставал устройство из холодного хранилища для того, о чем забыл.

Проблема заключалась в том, что каждый SSH-ключ представлял одно из моих устройств; у него не было никакой цели, связанной с ним. Я использовал одни и те же ключи для работы, вклада в открытый исходный код, файловых серверов и многого другого. Когда я разблокировал ключ для одного использования, я разблокировал его для всех.

1Password для SSH вошел в чат

Агент 1Password для SSH имеет более строгую модель авторизации, чем OpenSSH Agent[1] по умолчанию[2]. Вместо того чтобы ключ был либо доступен, либо недоступен, ключ имеет авторизованную сессию. Авторизованная сессия состоит из пары ключей и либо терминальной сессии, либо приложения. Я хотел иметь возможность сознательно санкционировать набор действий для моего текущего контекста (например, работа или открытый исходный код).

Таким образом, появился новый способ работы.

Я сгенерировал новую пару ключей для каждого из своих сценариев использования. 1Password в браузере сделал это очень просто, автоматически заполнив новый ключ в формах открытого ключа GitHub и Gitlab. Теперь, когда приходит время приступить к работе, я открываю терминал и запускаю git fetch. 1Password запрашивает мой отпечаток пальца, и я одобряю использование моего рабочего SSH-ключа.

Во время активного использования ноутбука мне больше ничего не предлагается. Когда приходит время переключиться на проект с открытым исходным кодом, я без проблем запрашиваю свой ключ GitHub.

Чуть позже, когда мне нужно обновить свой блог, я открываю новую вкладку терминала и начинаю сеанс SSH. Я перенаправляю свой SSH Agent с помощью ssh -A, чтобы я мог выполнить git pull, пока я там[3]. Когда я закончил, я выхожу из терминальной сессии, деавторизуя ее из 1Password SSH Agent.

Теперь генерация ключей SSH больше не является частью моего нового потока устройств! Все мои SSH-ключи сохранены в 1Password и синхронизированы на всех моих устройствах.

Я очень рад тому, что Git недавно добавил возможность подписывать коммиты с помощью SSH-ключей. Это уже работает с 1Password SSH, и я не могу дождаться, когда GitHub и Gitlab будут поддерживать проверку!


[1] Ограничение агента SSH выглядит очень круто! ︎

[2] Подобная функциональность доступна с помощью ssh-add -c. ︎

[3] В конце концов, я займусь установкой GitHub Action. По крайней мере, я так себе говорю. ︎

Этот пост был написан К. Дж. Валинчиком, старшим штатным разработчиком в 1Password.

Оцените статью
Procodings.ru
Добавить комментарий