# Как сделать авторизацию по ключу на удаленном сервере для Git на Windows?

1. Устанавливаем [Git](https://git-scm.com/download/win), если не установлен и запускаем Git Bash
2. Создаем ключ
```
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Enter file in which to save the key ({путь по умолчанию}):
# можно ничего не вводить останется путь по умолчанию, жмем Enter
# Enter passphrase (empty for no passphrase):
# ничего не вводим, жмем Enter
``` 
В зависимости от выбранного алгоритма шифрования (в нашем случае rsa) будет меняться имя файлов ключей, путь по умолчанию формируется например так:
закрытый ключ: `/c/Users/{username}/.ssh/id_{алгоритм}`
открытый ключ: `/c/Users/{username}/.ssh/id_{алгоритм}.pub`
но лучше использовать указатель на домашнюю папку пользователя: 
закрытый ключ: `~/.ssh/id_{алгоритм}`
открытый ключ: `~/.ssh/id_{алгоритм}.pub`
Конечно, вы можете задать собственное имя файлов, но это надо будет учитывать в дальнейших командах
3. Запускаем ssh-agent в фоне
```
eval "$(ssh-agent -s)"
``` 
4. Добавляем сгенерированный закрытый ключ в ssh-agent
```
ssh-add ~/.ssh/id_rsa
``` 
5. Копируем открытый ключ на сервер
```
ssh-copy-id -p 22 -i ~/.ssh/id_rsa.pub username@host-name.ru
``` 
Замените `username` на имя пользователя, под которым вы подключаетесь по SSH к серверу, а `host-name.ru` на имя хоста сервера. Указание порта -p 22 можно опустить, если используется стандартный 22-й порт.
Готово, теперь гит будет успешно подключаться к вашему удаленному репозитарию, например в папке `/var/www`, по URL `ssh://host-name.ru/var/www`, без пароля.
