Настройки за използване на Git в cPanel през SSH

Git е една от най-известните и използвани децентрализирани системи за контрол на версиите на файловете. С Git много потребители могат да работят едновременно по един и същ файл, без това да доведе до бъркотия и хаос в съдържанието на файла.

При СуперХостинг.БГ на услугите споделен хостинг и Managed VPS се поддържа създаването и управлението на Git хранилище (repository) през cPanel » Git Version Control или през SSH достъп.

За отдалечено хранилище може да се използва github.com, bitbucket.org, gitlab.com и други.

За да можете да клонирате хранилище през SSH, което се намира на отдалечен сървър, ще е нужно да генерирате двойка SSH ключове в cPanel и да добавите няколко реда с настройки в файл /home/cpuser/.ssh/config.

Бележка: SSH достъп се предоставя при хостинг планове СуперПро и СуперХостинг.

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) ще се запише частният ключ.

Важно: Ако искате да клонирате хранилище през Git Version Control в cPanel, в следващите две команди НЕ въвеждайте парола. За двете команди натиснете Enter, без да въвеждате нищо.

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.

Този ключ може да се копира и постави в акаунта в GitHub, Bitbucket, GitLab.
Този ключ може да се копира и постави в акаунта в GitHub, Bitbucket, GitLab.

Съдържанието на този файл може да се види през Файлов мениджър в cPanel – като го отворите за редакция (Редактиране/Edit).

2. Добавяне на публичния ключ в github / bitbucket / gitlab

От генерираната двойка ключове, качете публичния ключ (id_rsa.pub) в акаунта Ви в GitHub, Bitbucket, GitLab. Частният ключ е нужно да остане в хостинг акаунта и не трябва да го разкривате на никого.

В настройките на акаунта в GitHub изберете Settings » SSH and GPG Keys » New SSH key, поставете публичния ключ и изберете Add SSH key.

  Добавяне на публичния SSH ключ в акаунта в GitHub.
Добавяне на публичния SSH ключ в акаунта в GitHub.

В настройките (Settings) на акаунта Ви в Bitbucket изберете SSH keys » Add key, поставете публичния ключ и запишете с Add key.

Добавяне на публичния SSH ключ в акаунта в Bitbucket.
Добавяне на публичния SSH ключ в акаунта в Bitbucket.

В настройките (User Settings) на акаунта Ви в GitLab изберете SSH Keys » Add key, поставете публичния ключ и запишете с Add key.

 Добавяне на публичния SSH ключ в акаунта в GitLab.
Добавяне на публичния SSH ключ в акаунта в GitLab.

3. Файл .ssh/config с права 0600

Преди да е възможна връзката с отдалеченото хранилище, ще трябва да направите малка настройка във файл config.

В случай че директория /home/cpuser/.ssh е с други права, задайте ѝ 0700.

В тази директория /home/cpuser/.ssh създайте обикновен текстов файл с име config (променете правата му на 0600) и поставете в него няколко реда.

Настройки за SSH връзката с отдалечените хранилища.
Настройки за SSH връзката с отдалечените хранилища.

Съдържание на 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, ще Ви бъде поискана тази парола.

Въвеждане на паролата за частния SSH ключ, при опит за клониране на хранилище от GitHub.
Въвеждане на паролата за частния SSH ключ, при опит за клониране на хранилище от GitHub.

След успешно изпълнение на посочените стъпки, можете да ползвате Git клиент в хостинг акаунта.

Клониране на проект от GitHub.
Клониране на проект от GitHub.

Вижте още:

🔗 Git Version Control в cPanel | Help

🔗 Създаване на Git хранилище в cPanel | Help

🔗 Първи стъпки в Git | Blog

Обновена: 02.04.2022
Беше ли Ви полезна тази статия?

Вижте още