GIT: подключение по SSH
Чем полезно подключение по SSH для GIT
Я активно использую git не менее пяти лет. В самом начале меня сильно раздражала необходимость вводить пароль и логин при каждом обмене данными с удаленным репозитарием. Спустя некоторое время я узнал, что выход есть - нужно просто настроить ключи SSH. Полученный результат оправдал все мои ожидания: после установки SSH-ключей на рабочий компьютер, в тестовую среду и на продакшн работать стало намного проще.
Guthub рекомендует выбирать не SSH, а HTTPS подключение, обеспечивая, таким образом, универсальный доступ к репозитариям, минуя файрволлы. Настроить соединение по HTTPS не составляет труда - достаточно знать логин и пароль пользователя Github. Плохая новость заключается в том, что, имея HTTPS-подключение к удаленному репозитарию, при каждом выполнении команд git pull, git clone, git push или git fetch Вам потребуется вводить логин и пароль. Конечно, одним из вариантов решения такой проблемы будет кеширование учетных данных на соответствующем сервере или компьютере. Но данные, сохраненные таким образом, будут существовать ограниченный период времени.
Итак, я рекомендую использовать SSH-подключение, так как по моему мнению оно является более быстрым, удобным и безопасным:
- быстрым, потому что не потребуется вводить логин и пароль при каждом обмене данными,
- удобным, потому что, настроив один раз пару ключей SSH, можно длительное время выполнять работу,
- безопасным, потому что в отношении безопасности SSH выглядит более предпочтительным по сравнению с HTTPS. Например, в случае компрометации учетных данных Вам придется менять доступ к Github аккунту и всем связанным с ним репозитариям. Если в открытый доступ поступят Ваши SSH-ключи, достаточно их просто заменить.
Установка SSH-ключей для git-репозитария не является трудной.
В терминале нужно ввести команду:
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
заменив e-mail, приведенный в примере, на актуальный для Вашего проекта.
В результате будет создан новый SSH-ключ с заголовком, соответствующим указанному электронному адресу.
Следующим шагом появится строка “Enter a file in which to save the key”, требующая ввести имя файла для сохранения ключей. Просто нажмите Enter
- будут подставлены значения по умолчанию:
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Наконец, система попросит Вас ввести ключевое слово. Если Вы не желаете ассоциировать пароль с ключом, просто нажмите Enter
еще раз для того, чтобы пропустить этот этап.
Итак, SSH-ключ создан. Теперь нужно запустить SSH-агент
eval "$(ssh-agent -s)"
и добавить в него ключ:
ssh-add ~/.ssh/id_rsa
На последнем этапе нужно добавить публичный ключ в свой Github-аккаунт.
Для этого перейдите в настройки своего аккаунта в Github:
- кликните по иконке профиля в правом верхнем углу экрана,
- выберите пункт Settings,
- в меню открывшегося раздела выберите SSH and GPG Keys,
- нажмите на зеленую кнопку New SSH key,
- введите заголовок SSH ключа,
- скопируйте .ssh ключ в соответствующее поле из папки .ssh (или из любой другой папки, в которой Вы сохранили ключ),
- нажмите кнопку Add SSH key.
Теперь нужно перейти к работе по SSH: перейдите в соответствующий репозитарий в аккаунте Github, нажмите на зеленую кнопку Clone or download и кликните Use SSH.
Спасибо за внимание.
По материалам статьи Vets Who Code “Why I Use SSH with Git”.