Генерация и добавления SSH ключа для подключения к удаленному репозиторию GitHub

При  работе с Git самый используемый сетевой  протокол для передачи данных – это SSH. Причин для этого много:

  1. возможность SSH  подключения присутствует на большинстве серверах;
  2. с SSH легко работать и  настроить;
  3. дает возможность и на запись и на чтение;
  4. не нужно постоянно при запросах к центральному серверу вводить логин и пароль
  5. безопасное соединение по 22 порту предотвращает возможность включение в сессию и перехвата данных;
  6. данные передаются в зашифрованном виде;
  7. делает файлы более компактными (сжимает ) перед передачей.

Первым шагом,  нужно сгенерировать пару ключей. Это можно сделать  командой:

ssh-keygen -t rsa -b 4096 -C “example@gmail.com”

где example@gmail.com – Ваша электронная почта, обязательно нужно задать ту почту, которую Вы указывали при регистрации на GitHub.

После введения команды можно выбрать путь сохранения ключа или же просто нажать Enter, если хотите чтобы ключ сохранился в месте указанном по умолчанию:

Также для большей надежности можно ввести ключевую фразу. В первом поле вводим пароль, втором повторяем ту же фразу для ее верификации:

Следующим шагом нужно добавить сгенерированы ключи в  SSH-агент. Для этого нужно сначала запустить SSH-агент командой:

eval “$(ssh-agent -s)”

После введение команды, в терминале на выводе  будет показан id запущенного процесса.

Далее, как запустился агент, нужно добавить в него сгенерированные ключи командой:

ssh-add ~/.ssh/id_rsa

Как видим по скрину, ключи успешно добавились.

Ключи добавились, следующим шагом нужно их скопировать и добавить в удаленный репозиторий. Ключ можно найти по пути который указан на первом скриншоте:

Или же ввести команду в терминале и скопировать ключ в буфер обмена:

clip < ~/.ssh/id_rsa.pub

После чего заходим в свой аккаунт на GitHub и выполняем следующие действия, чтобы добавить ключ:

В графе Title вводим название для ключа (указываете какое хотите). И в графе Key добавляем сам публичный ключ и жмем Add SSH key.

Если все эти шаги сделаны успешно, ключ должен появиться на репозитории в графе с SSH key  и как идентификатор корректного ввода ключа, иконка ключа должна светится зеленым цветом.

Чтобы клонировать репозиторий с помощью SSH, копируем содержимое поля:

Протокол  SSH используют для надежности и удобности в работе над Вашими проектами.

You have to put the rsa key of the target host into the source host ~/.ssh/known_hosts by running this on the target

ssh-keyscan -t rsa github.com
ssh -o StrictHostKeyChecking=no -i YourPublicKey.pub user@example.com uptime

Create a ~/.ssh/config file and insert the line:

Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
Host bitbucket.org
AddKeysToAgent yes
IdentityFile ~/.ssh/bbk_id_rsa

UserKnownHostsFile ~/.ssh/known_hosts

ssh-keygen -t rsa -b 4096 -C "abc@abc.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Источник

Problems:

Git says “Warning: Permanently added to the list of known hosts”

SSH connection problem with “Host key verification failed…” error