Работа c GitHub по SSH под Windows 10
20.02.2018
Теги: Git • GitHub • SSH • Web-разработка • Windows
Git умеет работать с четырьмя сетевыми протоколами для передачи данных: локальный, Secure Shell (SSH), Git и HTTP. Положительным аспектом использования протокола HTTP(S) является простота настройки. Поэтому при работе с GitHub он используется чаще всего.
$ git remote -v origin https://github.com/username/project.git (fetch) origin https://github.com/username/project.git (push)
Как настроить работу с репозиторием на GitHub.com по SSH под Windows 10? Для начала посмотрим, какие ssh-ключи уже есть в системе:
$ ls -al ~/.ssh drwxr-xr-x 1 Evgeniy 197121 0 фев 25 10:26 ./ drwxr-xr-x 1 Evgeniy 197121 0 фев 25 10:25 ../
Ключей еще нет, директория пуста. Сгенерируем ключи командой
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Evgeniy/.ssh/id_rsa):[Жмем Enter] Enter passphrase (empty for no passphrase):[Вводим пароль для ключа] Enter same passphrase again:[Вводим пароль для ключа] Your identification has been saved in id_rsa. Your public key has been saved in id_rsa.pub.
Сначала необходимо указать расположение файла для сохранения ключа. Просто жмем Enter
, чтобы сохранить ключ в файле по умолчанию (~/.ssh/id_rsa
). Затем надо дважды ввести пароль для ключа, который можно оставить пустым (в этом случае дважды жмем Enter
).
$ eval $(ssh-agent -s) Agent pid 9600
Добавляем в него ключ
$ ssh-add ~/.ssh/id_rsa Enter passphrase for /c/Users/Evgeniy/.ssh/id_rsa:[Вводим пароль для ключа] Identity added: /c/Users/Evgeniy/.ssh/id_rsa (/c/Users/Evgeniy/.ssh/id_rsa)
Теперь надо добавить наш ключ в аккаунте GitHub. Авторизуемся и переходим на страницу https://github.com/settings/keys, жмем кнопку «New SSH key» и вставляем содержимое файла ~/.ssh/id_rsa.pub
в текстовое поле «Key».
Теперь можно использовать SSH вместо HTTPS. Смотрим, какой должна быть ссылка проекта на GitHub, предварительно выбрав «Use SSH» (вместо «Use HTTPS»):
И выполняем команду:
$ git remote set-url origin git@github.com:username/project.git
Проверяем:
$ git remote -v origin git@github.com:username/project.git (fetch) origin git@github.com:username/project.git (push)
Чтобы не вводить каждый раз пароль от ключа при работе с репозиторием на GitHub, нужно создать файл C:/Users/UserName/.bashrc
и добавить туда следующее:
#!/bin/bash
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Теперь запрос пароля от ключа будет происходить только один раз, при запуске (каждой новой) консоли.
git bash
(командная строка с стиле linux), которая устанавливается вместе с Git для Windows.
Здесь у меня получилось не однозначно, так что решил уточнить. Использовать ssh-агента полезно только в том случае, если для ключа был задан пароль. Если это не так — нужно просто указать git
, какой ключ использовать при работе с github.com
. Для этого создаем-редактируем файл ~/.ssh/config
:
Host github.com IdentityFile ~/.ssh/id_rsa Host some-server User evgeniy HostName 123.123.123.123 Port 22 IdentityFile ~/.ssh/some-server
- GitHub. Ключ развертывания (deploy key)
- Git. Символы конца строки EOL
- GitHub Actions. Начало работы, часть 2 из 2
- GitHub Actions. Начало работы, часть 1 из 2
- Блог на Laravel 7, часть 17. Временная зона для пользователей, деплой на хостинг TimeWeb
- Две версии MySQL на Windows 10
- Расширение «Remote — SSH» для VS Code
Поиск: Git • GitHub • SSH • Web-разработка • Windows