Ключи SSH

Создание SSH ключей

Для создания SSH ключей по алгоритму RSA на компьютере с операционной системой Windows, вы можете следовать следующему порядку действий: Откройте командную строку (CMD) с правами администратора и введите следующую команду:

	ssh-keygen -t rsa -C "your_email@example.com"

где ssh-keygen - это команда для создания SSH ключей;

-t rsa - указывает на тип ключа, который вы хотите создать. RSA - это наиболее распространенный тип ключа;

-C your_email@example.com - это комментарий, который будет привязан к вашему ключу. Вы можете указать здесь свой адрес электронной почты или любое другое описание.

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

Enter file in which to save the key (C:\Users\<your_username>/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):

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

  • для схемы цифровой подписи, основанной на эллиптической кривой Curve25519 и хэш-функции SHA-512:
  ssh-keygen -t ed25519
  • для схем цифровой подписи, основанных на алгоритме ECDSA и хэш-функции SHA-2
  ssh-keygen -t ecdsa -b 256
  ssh-keygen -t ecdsa -b 384
  ssh-keygen -t ecdsa -b 521

Добавление SSH ключа

Чтобы клонировать репозиторий, необходимо добавить открытый SSH ключ (обычно он имеет расширение .pub, например id_rsa.pub).

Для перехода на страницу добавления SSH ключа нажмите на иконку профиля, затем Настройки:

добавление ключей SSH, шаг 1

На вкладке SSH ключи нажмите Добавить SSH ключ:

добавление ключей SSH, шаг 1

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

cat ~/.ssh/id_rsa.pub

На открывшейся странице следует ввести произвольное название своего ключа и вставить содержимое открытого (публичного) ключа:

добавление ключей SSH, шаг 2

Проверка существующих SSH ключей

Чтобы проверить наличие уже сгенерированных ключей на вашем компьютере введите в консоли git:

ssh-agent -s

Пример результата команды при наличии ключей:

SSH_AUTH_SOCK=/tmp/ssh-40ZRlMnJMhEY/agent.1794; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1795; export SSH_AGENT_PID;
echo Agent pid 1795;

В данном случае, результат команды показывает, что был создан SSH-агент с PID (процессным идентификатором) 1795 и что он использует сокет /tmp/ssh-40ZRlMnJMhEY/agent.1794 для связи с клиентами.

Расположение ключей:

  • в ОС Windows ключи могут располагаться по адресу C:\Users\<your_username>\.ssh;
  • в ОС Linux - /home/<your_username>/.ssh (директория может быть скрытой).

Чтобы открыть файловый менеджер ОС Linux в папке с ssh ключами выполните:

cd ~/.ssh
xdg-open .

Подключение удаленного репозитория по SSH

Для переподключения удаленного репозитория по SSH выполните команду:

git remote set-url origin ssh://git@gitverse.ru:2222/<username>/<repository_name>

Вместе с тем не обязательно отключать репозиторий от соединения по HTTPS перед подключением по SSH. Достаточно добавить новый URL для подключения по SSH с помощью команды git remote set-url флагом --add. Git позволяет иметь несколько URL для каждого удаленного репозитория и использовать их по вашему усмотрению.

Пример:

git remote set-url --add origin ssh://git@gitverse.ru:2222/<username>/<repository_name>