Как сделать авторизацию по ключу на удаленном сервере для Git на Windows?
- Устанавливаем Git, если не установлен и запускаем Git Bash
- Создаем ключ
В зависимости от выбранного алгоритма шифрования (в нашем случае rsa) будет меняться имя файлов ключей, путь по умолчанию формируется например так: закрытый ключ: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
/c/Users/{username}/.ssh/id_{алгоритм}
открытый ключ:/c/Users/{username}/.ssh/id_{алгоритм}.pub
но лучше использовать указатель на домашнюю папку пользователя: закрытый ключ:~/.ssh/id_{алгоритм}
открытый ключ:~/.ssh/id_{алгоритм}.pub
Конечно, вы можете задать собственное имя файлов, но это надо будет учитывать в дальнейших командах - Запускаем ssh-agent в фоне
eval "$(ssh-agent -s)"
- Добавляем сгенерированный закрытый ключ в ssh-agent
ssh-add ~/.ssh/id_rsa
- Копируем открытый ключ на сервер
Заменитеssh-copy-id -p 22 -i ~/.ssh/id_rsa.pub username@host-name.ru
username
на имя пользователя, под которым вы подключаетесь по SSH к серверу, аhost-name.ru
на имя хоста сервера. Указание порта -p 22 можно опустить, если используется стандартный 22-й порт. Готово, теперь гит будет успешно подключаться к вашему удаленному репозитарию, например в папке/var/www
, по URLssh://host-name.ru/var/www
, без пароля.