Перейти к основному содержимому

Как создать SSH-ключ?

При генерации ключа нужно:

  1. Cгенерировать новый ключ.
  2. Добавить его в SSH-агент (не обязательно).
  3. Прописать ключ в config (не обязательно).

Затем публичный ключ id_rsa.pub отправить на сервер, с которым будет происходить соединение.

Внимание, если ключ сохраните в файл с именем отличном от id_rsa, то не забудьте его прописать в файле config.

Генерация SSH-ключа

ssh-keygen -t rsa -b 4096 -C "khusamov@yandex.ru" -f ~/.ssh/id_rsa
ssh-keygen -t rsa -b 4096 -C "khusamov@yandex.ru" -f ~/.ssh/id_rsa_github
ssh-keygen -t rsa -b 4096 -C "khusamov@yandex.ru" -f ~/.ssh/id_rsa_bitbucket

Вместо khusamov@yandex.ru укажите адрес своего ящика.

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

Убедитесь, что SSH-агент включен:

eval "$(ssh-agent -s)"

Добавьте ваш ключ SSH в SSH-агент:

ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_github

Как прописать SSH-ключ в config?

Допустим у вас есть ключ для github.com в файле ~/.ssh/id_rsa_github. Тогда его следует прописать в файле ~/.ssh/config следующим образом:

Host github.com
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa_github

Особенности на github.com

Публичный ключ id_rsa.pub следует отправить на сервер, с которым будет происходить соединение. См. статью Как добавить ключ на гихабе?

Особенности на c9.io

Внимание, для сервиса c9.io ключ обязательно создавать в файле отличном от ~/.ssh/id_rsa (например ~/.ssh/id_rsa_github), а в файле ~/.ssh/config прописать путь к нему.

cloud9 puts an autogenerated ssh key into ~/.ssh/id_rsa. You can add that to github, or put your key into ~/.ssh/id_rsa_github, and add a ~/.ssh/config like

Host github.com User git Port 22 Hostname github.com IdentityFile ~/.ssh/id_rsa_github TCPKeepAlive yes IdentitiesOnly yes

Подробности см. на community.c9.io.

Проверка отпечатка (Fingerprint) ключа

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

ssh-add -l -E md5

Ссылки

https://help.github.com/categories/ssh/
https://help.github.com/articles/generating-an-ssh-key/
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/