Настройки git для работы с github


Инсталляция gh в Ubuntu Linux


gh - консольная программа для работы с GitHub API в командной строке.


$ cd ~/tmp


$ vi gh.sh


curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable master" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh


$ chmod +x gh.sh
$ ./gh.sh


// Чтобы создавался origin на ssh а не https
$ gh config set git_protocol ssh -h github.com


$ git config --global user.name "<GITHUB_USERNAME>"
$ git config --global user.email "<GITHUB_EMAIL>"


Настройка работы с GitHub по SSH ключу


Сгенерировать ключ для GitHub


$ cd ~/.ssh/


$ ssh-keygen \
-t rsa \
-b 4096 \
-C "example@gmail.com" \
-f webmakaka


$ chmod 0600 webmakaka*
$ eval "$(ssh-agent -s)"


// Добавляем private key
$ ssh-add ~/.ssh/webmakaka

// Проверка, что ключ добавлен
$ ssh-add -l -E md5


// Посмотреть public key
$ cat ~/.ssh/webmakaka.pub


// Скопировать public key в буфер
$ cat ~/.ssh/webmakaka.pub | xclip -selection clipboard


В настройка аккаунта github добавить public key

https://github.com/settings/keys

New SSH key


// Проверка возможности подключиться
$ ssh -T git@github.com

// При необходимости использовать токен
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/webmakaka -o IdentitiesOnly=yes' ssh -T git@github.com


MD5 должны совпадать в UI и в ssh-add


Использовать несколько ключей для разных github аккаунтов


$ GIT_SSH_COMMAND='ssh -i ~/.ssh/webmakaka -o IdentitiesOnly=yes' git push