Создать Пару Ключей SSH

Введение

Repository Hosting использует шифрование с открытым ключем для аутентификации всех частных доступов к Git, Mercurial и хранилищ по SSH. Чтобы получить доступ к частному хранилищу, или зафиксировать общественное Git хранилище, вам нужно создать пару ключей SSH и передать Repository Hosting общественную половину ключей.

ПРИМЕЧАНИЕ: Если у вас есть несколько аккаунтов в Repository Hosting, то вам нужно создать новую пару ключей для каждого аккаунта.

Создать Пару Ключей

Mac OS

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa): <use default or enter new location>
Enter passphrase (empty for no passphrase): <password>
Enter same passphrase again: <confirmation>
Your identification has been saved in /Users/username/.ssh/id_rsa.
Your public key has been saved in /Users/username/.ssh/id_rsa.pub.
The key fingerprint is:
ab:f9:23:a6:f0:db:ce:64:59:dd:98:b9:be:7c:57:6f username@hostname.local

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqkDkMnQwAer3irnip5U1HzJmfahJ06474mhb4Z4eobhXQ
I7qDu1pbt7H2SSSswa6HwX7Uicelh1u6PkQaSZJ/QOaUWSFkyM2hw+B3oOfqVVnst9vdZPpTLfyWuxqG2
YAnHyYEb2w58VSVbk4L89s3V21keMZI3+PD83+K2LvqsgxfO4UHds7SRk5kLCTQGHljr2POG8TQ3Xfec7
xvXy6jTB0gipM0/dUV0uxdGCEU5WNPSLIjhnHl6BF8Q84Dzc9FroGHNzhDG2POMco6HhKx2zgjm4K5rFu
jR1nV45unWc/RLE0Zeom+Znfw1s5jETAo6/NZKVLrNGP1LryWy8wyQ== username@hostname.local

$ cat ~/.ssh/id_rsa.pub | pbcopy # copy to clipboard

Linux

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): <use default or enter new location>
Enter passphrase (empty for no passphrase): <password>
Enter same passphrase again: <confirmation>
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
ab:f9:23:a6:f0:db:ce:64:59:dd:98:b9:be:7c:57:6f username@hostname

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqkDkMnQwAer3irnip5U1HzJmfahJ06474mhb4Z4eobhXQ
I7qDu1pbt7H2SSSswa6HwX7Uicelh1u6PkQaSZJ/QOaUWSFkyM2hw+B3oOfqVVnst9vdZPpTLfyWuxqG2
YAnHyYEb2w58VSVbk4L89s3V21keMZI3+PD83+K2LvqsgxfO4UHds7SRk5kLCTQGHljr2POG8TQ3Xfec7
xvXy6jTB0gipM0/dUV0uxdGCEU5WNPSLIjhnHl6BF8Q84Dzc9FroGHNzhDG2POMco6HhKx2zgjm4K5rFu
jR1nV45unWc/RLE0Zeom+Znfw1s5jETAo6/NZKVLrNGP1LryWy8wyQ== username@hostname.local

Windows

Исторически, Git плохо работает с Windows. Тем не менее ситуация улучшается со временем. Если вы используете msysGit, вы можете использовать ssh-keygen инструмент для создания ключей. Кроме того, вы также можете использовать PuTTYgen чтоб создать пары ключей.

Check out our FAQ for more information on accessing repositories via SSH on Windows.

Ассоциация Открытого Ключа

Общественная часть ключа должна быть доступна для Repository Hosting, так чтобы наш сервер распознал ваш ключ и связал его с вашим аккаунтом. После входа в веб-интерфейс для вашего аккаунта, просто нажмите на ссылку "Мой профиль " в правом верхнем углу, или ссылку Настройка рядом с именем пользователя н Приборной Панели Аккаунта. Выберите вкладку "Открытые Ключи" а затем введите содержимое файла общественного ключа (с окончанием .pub) в форму для добавления открытых ключей.

Изменение ssh_config

SSH необходимо знать, как найти вашу пару ключей. Если вы используете одно из имен калвиш по умолчанию как ~/.ssh/id_rsa, то SSH сможет найти его автоматически. Вы также можете указать ваши ключи в файле ssh_config. Пример файла конфигурации приведен ниже. Кроме того, вы сможете зарегистрировать свою пару ключей с SSH выполняя "ssh-add /path/to/my_key"

Из-за того что вы должны использовать отдельные SSH ключи для каждого Repository Hosting аккаунта, вам нужен способ для переключения между ключами вашего клиента. Самый простой способ это изменить ssh_config файл (на Ubuntu, это находится здесь: /etc/ssh/ssh_config). Используйте следующие установки образца в качестве руководства:

#
# personal account
#
Host personal.repositoryhosting.com
Hostname personal.repositoryhosting.com
IdentitiesOnly yes
IdentityFile ~/.ssh/personal_key
#
# corporate account
#
Host corporate.repositoryhosting.com
Hostname corporate.repositoryhosting.com
IdentitiesOnly yes
IdentityFile ~/.ssh/corporate_key

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

# see what keys are registered with SSH
ssh-add -l

# test connecting to the Repository Hosting servers
# a message that says "Welcome to Repository Hosting" means you were authenticated
ssh -v git@<account-subdomain>.repositoryhosting.com
ssh -v hg@<account-subdomain>.repositoryhosting.com