Содержание
🗒️ Содержание
- Перед настройкой SSH-ключей
- Подключение к GitLab с помощью SSH
- Подключение к GitHub с помощью SSH
- Лучшая организация ключей
1. Перед установкой ключей SSH
- Проверка наличия существующего файла ключей SSH
$ ls ~/.ssh
id_rsa id_rsa.pub known_hosts
- Подтверждение наличия активных открытых SSH-ключей (
*.pub
) в ssh-agent
$ ssh-add -L
- Удалить все старые ключи
$ rm -r ~/.ssh
2. Подключение к GitLab с помощью SSH
- Шаг 1: Сгенерируйте пару ключей SSH
$ ssh-keygen -t ed25519 -C "<your_email_01>@gmail.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/<user>/.ssh/id_ed25519): /home/<user>/.ssh/id_ed25519_gitlab
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
- Шаг 2: Добавьте SSH-ключ в свою учетную запись GitLab
$ cat ~/.ssh/id_ed25519_gitlab.pub
# or
$ xclip -sel clip < ~/.ssh/id_ed25519_gitlab.pub
Скопируйте содержимое файла с открытым ключом вручную или с помощью скрипта. Затем перейдите в GitLab > Preferences > SSH Keys.
- Шаг 3: Убедитесь, что вы можете подключиться
$ ssh -T git@gitlab.com
...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Welcome to GitLab, <user_name>!
3. Подключение к GitHub с помощью SSH
- Шаг 1: Сгенерируйте пару ключей SSH
$ ssh-keygen -t ed25519 -C "<your_email_02>@gmail.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/<user>/.ssh/id_ed25519): /home/<user>/.ssh/id_ed25519_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
- Шаг 2: Добавьте SSH-ключ в свою учетную запись GitLab
$ cat ~/.ssh/id_ed25519_github.pub
# or
$ xclip -sel clip < ~/.ssh/id_ed25519_github.pub
Скопируйте содержимое файла с открытым ключом вручную или с помощью скрипта. Затем перейдите в GitHub > Настройки > SSH и GPG ключи.
- Шаг 3: Убедитесь, что вы можете подключиться
$ ssh -T git@github.com
...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Hi <user_name>! You've successfully authenticated, but GitHub does not provide shell access.
4. Лучшая организация ключей
Для получения дополнительной информации об этих настройках смотрите man ssh_config
$ cd ~/.ssh/
$ touch config
$ vi config
# GitLab
Host gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_gitlab
# GitHub
Host github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_github