GitHub через SSH
Генерируем SSH-ключ
Перемещаемся в каталог ssh где будут лежать ключи и конфигурация. Стандартный для *nix - подобных /etc/ssh
cd /ect/ssh ssh-keygen -t rsa -b 4096 -C ""
-t - тип ключа, в нашем случае RSA
-b - длина ключа, в нашем случае 4096
-C - комментарий (можно любую строку)
Enter file in which to save the key - имя файлов с ключами (обязательное поле). в нашем случае введём имя "UserUser"
Enter passphrase - парольая фраза. Если есть желание вводить каждый раз пароль при использование ключа, вводим. Если нет, оставляем пустым.
Enter same passphrase again - вводим тоже самое что и в предыдущем пункте.
Готово, ключи созданы. Один приватный, другой публичный. Там где .pub - публичный.
Настройка конфигурации SSH
В каталоге ssh /etc/ssh правим файл клиента ssh с помощью любого удобного редактора, например nano
nano ./ssh_config
Добавляем в конфигурацию следующие строки:
Host UserUser_github HostName github.com User git IdentityFile /etc/ssh/UserUser
HostName - имя хоста, куда пойдем и где будем использовать ключ. В нашем случае это GitHub.com
User - пользователь под которым будем логиниться. В нашем случае на GitHub стучаться будет программа git
IdentityFile - файл до приватного ключа, без .pub
Host - псевдоним.
Один/несколько акаунтов
Если на машине используется только один аккаунт GitHub, то использовать Host не обязательно. Если же акаунтов несколько, то без него не обойтись, так как поиск будет идти по псевдониму.
Например ссылка на репозиторий выглядит вот так:
git@github.com:UserUser/repository.git
Без псевдонима - аккаунт только один
git ориентируется на поле в котором находится github.com (то что после @)
Затем находит в конфигурации совпадение с HostName в файле ssh_config, возьмет ключ IdentityFile для этого HostName и далее выполняет команду.
С псевдонимом - несколько акаунтов
Поле в котором ранее находилась строка github.com, должно замениться на имя псевдонима и принять вид:
git@UserUser_github:UserUser/repository.git
Теперь git возьмет псевдоним pcm_systems_github, найдет его среди множества конфигураций в файле ssh_config, на его место подставит HostName, возьмет ключ IdentityFile для этого HostName и выполнит команду.
Иными словами, псевдоним первичен при поиске необходимой конфигурации.
Настройка на стороне GitHub
В каталоге /etc/ssh выводим содержимое файла публичного ключа. В нашем случае UserUser.pub
Дальше идем на GitHub и следуем по пути:
Домашняястраница GitHub -> Settings -> SSH and GPG keys ->New ssh key
Даём название ключу в поле Title и добавляем содержимое из публичного ключа UserUser.pub в поле Key.