Git е една от най-известните и използвани децентрализирани системи за контрол на версиите на файловете. С Git много потребители могат да работят едновременно по един и същ файл, без това да доведе до бъркотия и хаос в съдържанието на файла.
За отдалечено хранилище може да се използва github.com, bitbucket.org, gitlab.com и други.
За да можете да клонирате хранилище през SSH, което се намира на отдалечен сървър, ще е нужно да генерирате двойка SSH ключове в cPanel и да добавите няколко реда с настройки в файл /home/cpuser/.ssh/config.
1. Генериране на SSH ключове (публичен и частен)
Генерирането на SSH ключовете може да се извърши или през cPanel » SSH достъп » Управление на SSH ключове или като се логнете в хостинг акаунта през SSH.
Ако генерирате SSH ключовете през Управление на SSH ключове в cPanel и зададете друго име за частния ключ, например githubkey, вместо зададеното по подразбиране – id_rsa, ще трябва да го поставите след това във файла /home/cpuser/.ssh/config.
За да генерирате двойката ключове през SSH, изпълнете следната команда:
cpuser@mysupersite.com [~]# ssh-keygen -t rsa -C „my@mail.com“
Generating public/private rsa key pair.
my@mail.com – имейл адресът за акаунта в github, bitbucket или gitlab;
Enter file in which to save the key (/home/cpuser/.ssh/id_rsa):
Без да въвеждате нищо, натиснете Enter. В посочената директория ( /home/cpuser/.ssh) и файл (id_rsa) ще се запише частният ключ.
Enter passphrase (empty for no passphrase):
Ако ще клонирате хранилище през SSH, въведете парола за частния ключ и натиснете Enter.
Enter same passphrase again:
Въведете отново паролата и натиснете Enter. Тази парола ще Ви бъде поискана при връзка през SSH с отдалеченото хранилище.
При успешно генериране на ключовете, ще получите подобно съобщение:
Your identification has been saved in /home/cpuser/.ssh/id_rsa. Your public key has been saved in /home/cpuser/.ssh/id_rsa.pub. The key fingerprint is: 20:09:75:52:4b:08:01:a8:e2:5e:z6:34:86:42:56:06 my@mail.com The key's randomart image is: +--[ RSA 2048]----+ |oE=+oo+ | |. +.= . | |. o o o | |oo . . | |* . S | |o= o | |= + | | o | | | +-----------------+
Двата ключа се намират в директория: /home/cpuser/.ssh
Публичният ключ, който трябва да добавите в github/bitbucket/gitlab, ще се намира във файла: /home/cpuser/.ssh/id_rsa.pub.
Съдържанието на този файл може да се види през Файлов мениджър в cPanel – като го отворите за редакция (Редактиране/Edit).
2. Добавяне на публичния ключ в github / bitbucket / gitlab
От генерираната двойка ключове, качете публичния ключ (id_rsa.pub) в акаунта Ви в GitHub, Bitbucket, GitLab. Частният ключ е нужно да остане в хостинг акаунта и не трябва да го разкривате на никого.
В настройките на акаунта в GitHub изберете Settings » SSH and GPG Keys » New SSH key, поставете публичния ключ и изберете Add SSH key.
В настройките (Settings) на акаунта Ви в Bitbucket изберете SSH keys » Add key, поставете публичния ключ и запишете с Add key.
В настройките (User Settings) на акаунта Ви в GitLab изберете SSH Keys » Add key, поставете публичния ключ и запишете с Add key.
3. Файл .ssh/config с права 0600
Преди да е възможна връзката с отдалеченото хранилище, ще трябва да направите малка настройка във файл config.
В случай че директория /home/cpuser/.ssh е с други права, задайте ѝ 0700.
В тази директория /home/cpuser/.ssh създайте обикновен текстов файл с име config (променете правата му на 0600) и поставете в него няколко реда.
Съдържание на config файла за GitHub:
Host github.com
User my@mail.com
Hostname ssh.github.com
Port 443
Ако за частния SSH ключ сте задали име, различно от id_rsa, то ще трябва да добавите и следните редове:
RSAAuthentication yes
IdentityFile ~/.ssh/githubkey
githubkey – заменете с името на файла, в който се намира частния ключ;
Съдържание на config файла за Bitbucket:
Host bitbucket.org
User my@mail.com
Hostname altssh.bitbucket.org
Port 443
Ако за частния SSH ключ сте задали име, различно от id_rsa, то ще трябва да добавите и следните редове:
RSAAuthentication yes
IdentityFile ~/.ssh/bitbucketkey
bitbucketkey – заменете с името на файла, в който се намира частния ключ;
Съдържание на config файла за GitLab:
Host gitlab.com
Hostname altssh.gitlab.com
User email@forgitlab.com
Port 443
Ако за частния SSH ключ сте задали име, различно от id_rsa, то ще трябва да добавите и следните редове:
RSAAuthentication yes
IdentityFile ~/.ssh/gitlabkey
gitlabkey – заменете с името на файла, в който се намира частния ключ;
Ако посочените по-горе редове не съществуват, то има голяма вероятност при опит да се свържете с отдалеченото хранилище да получите съобщение за грешка:
cpuser@mysupersite.com [~]# git clone git@github.com:myproject/mysupersite.git
ssh: connect to host github.com port 22: Connection refused
fatal: The remote end hung up unexpectedly
За да проверите връзката Ви към отдалеченото хранилище, както и кой SSH ключ ще се използва, може да използвате командата:
cpuser@mysupersite.com [~]# ssh -vT git@github.com
git@github.com – може да замените със съответното хранилище, например git@bitbucket.org или git@gitlab.com;
Ако сте задали парола за SSH ключа, при опит за връзка с отдалеченото хранилище през SSH, ще Ви бъде поискана тази парола.
След успешно изпълнение на посочените стъпки, можете да ползвате Git клиент в хостинг акаунта.
Вижте още:
🔗 Git Version Control в cPanel | Help
🔗 Създаване на Git хранилище в cPanel | Help
🔗 Първи стъпки в Git | Blog