Редактировать

Стоит прочесть

Создание ключа на локальной машине

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

ls -al ~/.ssh

Если ключи найдены, то можно воспользоваться ими, если их нет, то нужно их создать.

Для создания ключей используем команду:

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

# -t - тип ключа
# -b - биты шифрования
# -C - комментарий

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

Теперь созданный Вами ключ можно использовать для передачи в нужный сервис, например github.com, bitbucket.org или gitlub.com, а так же использовать его для подключения к серверам по SSH.

Получение значения ключа для использования его в сервисах

После ответа на все вопросы команды создания rsa ключа у Вас в папке появиись два файла, если Вы не меняли значения по умолчанию, то они будут называться:

  • id_rsa - секретная часть ключа
  • id_rsa.pub - публичная часть ключа

Секретную часть никогда и ни при каких обстоятельствах нельзя передавать третьим лицам, а вот публичную часть напротив нужно передать в тот сервис, на котором вы хотите иметь доступ по SSH.

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

cat ~/.ssh/id_rsa.pub

Она отобразит содержимое ключа на экране. Именно полученный текст и нужно вставить в админку сервиса.

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

subl ~/.ssh/id_rsa.pub

Передача ключа на сервер для доступа по SSH

Добавление информации о публичном ключе на сервер можно выполнить двумя вариантами, и в обоих случаях Вам понадобятся логин и пароль с достаточными привилегиями для добавления ключа на этом сервере.

Вариант 1

ssh-copy-id [-i <your_pub_key_path>] <user_name>@<server_ip_on_domain>

**-i <путь_к_публичному_файлу_ключа>** используется, если у Вас файл ключа называется не стандартным образом или расположен в не стандартной директории.

Вариант 2

cat ~/.ssh/<your_ssh_key_name>.pub | ssh <user_name>@<server_ip_on_domain> "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"